1、scanf scanf以%s格式符读入字符串,会以空格为结束,也就是无法将空格读入。如果换成%c就可以读入,但是无法一次性读入一整行字符。 2、fgets 显然,fgets是一个读取带空格字符串的利器,简单方便。 3、getchar() 利用getchar(),getchar可以读入换行还有空格,有时候有些函数无法读入换行,比如cin,但是会留在缓冲...
scanf() 读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。 gets() 认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对 gets() 来说就是一个完整的字符串。 也就是说,gets() 能读取含有空格的字符串,...
1、首先,定义一个常量,控制字符串的长度。2、定义两个数组,保存文章中的字符和最短单词。3、用do-while循环控制输入文章,条件是不等于句号。4、取文章中的字符,保存在数组art中。5、用for循环控制获取文章中的最短单词,条件是小于等于l。6、用if语句判断是否为空格和句号,获取一个单词。7、获...
//经测试,getline读入字符串,读入空格,会识别回车为截止,即不读入\n但是会吞掉(跳过)他(即将\n移出缓冲区,以防下次读入的时候直接\n了)(所以上来就\n,用cin不影响但是getline就影响了) //或理解成会将\n读入字符串,但是优化的时候将其换成\0,反正就是缓冲区和字符串中都没有这个\n // 不带getchar的ce...
默认是以空白符作为结束标记的,如果要用scanf读取带空格的字符串,可以这样。以换行符作为结束标记,从而读取带空格的字符串。include <stdio.h> int main() { char str[100]; scanf("%[^\n]",str); printf("%s",str); return 0;} ...
^表示"非",[^\n]表示读入换行字符就结束读入。这个是scanf的正则用法,我们都知道scanf不能接收空格符,但是使用%[^\n]就可以了。scanf("%[^,]")...
普通的scanf输入字符串时遇到空格就结束读取了。gets读取时遇到空白符不会结束,遇到换行符才会结束(并且不会接受换行符) 输入的字符串,并且会自动在字符串的末尾加上空白符('\0') 已经被逐渐抛弃 因为gets输入字符串的时候,并不知道该字符串有多大的空间。如果输入的字符串长度多出了申请的空间,会导致缓冲区溢出...
scanf("%s",a);scanf输入的以空格或回车结束 。所以a只接受到了空格之前的字符 ,所以就出问题了。改成 gets(a)就好了
用fgets就可以了 原型是char *fgets(char *s, int n, FILE *stream);从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL char t[100];fp=fopen("file","r");fgets(t,81,fp); //从fp文件中读入80个字符,如果遇到回车或不足80个,就结束读取...