----------------解决方案--------------------------------------------------------
无奈。还无接触过。。。。
----------------解决方案--------------------------------------------------------
在c语言中用gets()和puts()可以输入输出字符串,在c++中输入输出字符串应该怎么写比较好?
char str[ ]="This is a test string";
cout << str << endl;
其效果与C中
puts( str );
相当。
----------------解决方案--------------------------------------------------------
那如果我要输入一个字符串,是不是
比如:
char str[16];
cin>>str;
就可以了?
----------------解决方案--------------------------------------------------------
#include<iostream.h>
int main()
{
char s[20],t[20];
cout << "input a string: ";
cin >> s >> t;
cout << s << ',' << t << endl;
return 0;
}
运行情况
若输入
this is a pencil
则输出
this,is
跟C语言一样,输入时如果遇见空白符(空格等)就终止了相应数据项的填充。
----------------解决方案--------------------------------------------------------
最近在学汇编和C混合编程,虽然不符合楼主的要求,但还是过来练练手
源代码:
;f.asm
PUBLIC _gets
PUBLIC _puts
.model small
.186
.code
_gets PROC C s: PTR BYTE
cmp s, BYTE PTR 0
je _on_fail1
mov ah, 1
push si
mov si, OFFSET s
_loop1:
int 21h
cmp al, 0dh
je _on_success
mov BYTE PTR [si], al
inc si
jmp _loop1
_on_success:
mov [si], 0
pop si
mov ah, 2
mov dl, 0ah
int 21h
mov ax, 1
ret
_on_fail1:
mov ax, 0
ret
_gets ENDP
_puts PROC C s: PTR BYTE
cmp s, BYTE PTR 0
je _on_fail2
mov ah, 40h
mov bx, 1
mov cx, 0
push si
mov si, OFFSET s
_loop2:
cmp [si], BYTE PTR 0
je _exit_loop
inc si
inc cx
jmp _loop2
_exit_loop:
pop si
mov dx, OFFSET s
int 21h
mov ah, 2
mov dl, 0ah
int 21h
mov ax, 1
ret
_on_fail2:
mov ax, 0
ret
_puts ENDP
END
/* cmain.cpp */
#ifdef __cplusplus
#define EXT extern "C"
#else
#define EXT extern
#endif
EXT int gets(char *s);
EXT int puts(char *s);
int main() {
char s[80];
gets(s);
puts(s);
return 0;
}
用BC或TC建个PRJ,把这两个文件都添加进去,编译就好了。
----------------解决方案--------------------------------------------------------
yuki
----------------解决方案--------------------------------------------------------