个字符串分为一个一个字符输入
char s[100];
int i=0;
while(scanf("%c",&s[i]),s[i]!=’/n’) i++;
s[i]=’/0’;
遇到换行停止输入,并且将换行替换为/0 printf("%s/n",s); 但是如果在这段程序前还有其他类型的输入,则需要把回车吃掉,即加一条scanf("%*c"),因为scanf不会将/n或者空格符赋值给字符串,但会赋值给字符输入"%c".
总结来看,一个是能不能读取空格,一个是会不会吸收回车,都需要注意。
字符串输入:
string x; scanf("%s",x);//不读取空格,不读取回车
gets(x);//读取空格,读取回车
cin>>x;//不读取空格, 不读取回车
getline(cin,x);//读取空格,不读取回车
字符输入
char ch;
cin>>x;//不读取回车
scanf("%c",&ch);//读取回车
需要屏蔽回车的个,一个是gets,一个是getline,一个是scanf的字符输入。
怎么屏蔽回车呢,gets用getchar();,getline用cin.ignore(1);
gets不能读取string类型的字符串。
会读取空格的就gets和getline