scanf与gets连用
答:scanf和gets不能混合使用,如果一个程序中用scanf的话,一般不能再用gets,反之亦然。 1:...2:gets()输入字符串时,可以包含空格在内的字符,在回车时,自动将字符串结束标志'\0'赋予字符数组最后一个元素。scanf函数不能输入包含空格字符的字符串,也就是说空格是scanf默认的结束符号。3:如果像...
答:1:在 scanf函数 的%d后面加一个空格 scanf("%d ",&a);//可以吸收所有连续的空白(空格,回车,tab)2:在gets前面加一句 rewind(stdin);//清空输入缓冲区
答:gets() 是读一行字符串,包括在前在后在半当中的 空格,空白,...scanf("%d",&k); 和 scanf("%d\n",&k); 不同。后者可以吃掉一个 Enter 键。简单保险的办法是用 fflush(stdin); 清除 输入缓冲区。你就 不用担心 输入行 残留 的数字,字符,空白和Enter 键:scanf(。。。); ...
答:scanf(..);输入字符按下回车键后,gets()函数会把回车键当做输入的字符。所以在执行gets()前要把回车过滤掉!!改正后代码:include<stdio.h> main(){ char a1[5] = "",a2[5] = "",a3[5] = "",a4[5] = "";scanf("%s%s",a1,a2);printf("a1=%s\n",a1);printf("a2=%s\n"...
答:scanf可以输入所有类型的数据,而gets只能输入字符串;当scanf在前面的时候输入数据和后面的字符串中间会用空格分开,这时gets就无法区分这个空格是否属于gets的输入。你在scanf后面加一个getchar();会解决问题的。
答:scanf的%s格式接收字符串时,以空格或回车作为终止符。而gets只以回车作为终止符。你这里s1==aaa s2==bbb s3=ccc ddd所以输出会这样 puts输完最后输出'\n',就是换行
答:1、scanf你用的格式为"%c",所以只会读入单个的字符,不管是普通字符还是空格回车tab都会直接输入给对应的char变量。如果用的格式为"%s",那么会忽略空格、回车、tab 。2、gets不会清空,但gets会忽略输入结尾的那个回车,然后加个'\0'来确保字符串正确结束,所以第一个列子中,前10个字符输入给a,...
答:当用scanf("%s",str);来获取这段英文文字的时候,输出会在第一个空格的地方程序结束,如下图:而使用gets()时不会出现这种情况,可以把空格之后的字符也都正常输出来。第一次输入Hello world!后,字符串Hello world!都会被读到输入缓冲区中,而scanf()函数取数据是遇到回车、空格、TAB就会停止,也...
答:h;printf("输入长和高:");scanf("%d%d", &l, &h); printf("输入字符串a=");flushall();//清空缓冲区gets(a);puts(a);return 0; }这样就可以了。非格式化输入,字符和字符串的输入会受到前次输入缓冲区的影响,因此在gets、getchar等接收字符输入前,应该清空缓冲区。
答:include <stdio.h> int main(){ char s[3][20];int i;printf("输入第一行:");gets(s[0]);printf("输入第二行:");scanf("%s",s[1]);for(i=0;i<2;i++){ printf("%s\n",s[i]);} return 0;}
网友评论:
曲子13963194024:
scanf能不能与gets一起用,请说明原因,详细点哈. 我试过,好像不能 -
41297杜叔
: gets函数可以一次接收一行输入串,其中可以有空格,也就是说空格可以做为字符串的一部分输入. 而scanf函数接收的字符串不会含有空格,即遇到字空格时,认为字符串输入结束,也就是说空格是scanf默认的结束符号.scanf和gets不能混合...
曲子13963194024:
求助:如何用gets和scanf同时处理一个字符串 -
41297杜叔
: scanf输入字符串当字符串中含有空格的时候,空格后面的部分将不会被读入;而用gets则可以;比如一定义变量name:1、scanf("%s",name);2、gets(name);当你从键盘输入:string question 时,两者的s变量的值分别为:1、string;2、string question;对于这些简单问题课本一般都会有说明,要多看看课本;
曲子13963194024:
Linux下的C编程,为什么scanf和gets函数连在一起用,后面的gets函数没有效果?
41297杜叔
: 当使用scanf语句,你打完回车以后.这个回车会作为一个字符读入到缓冲区中,当执行到gets语句时,就会自动读入这个换行符.相当于gets读入了一个'\n'.只要在scanf语句后加一句getchar();就行了
曲子13963194024:
C语言中scanf和gets不可以同时出现在一段程序里吧?为何下列程序可以同时出现呢 -
41297杜叔
: 可以出现在一段程序中.gets(str1); 是用字符串的方法 读整一行字符,允许夹空白.scanf("% 是 按格式 读入数据.需要分2行输入,第一行给 gets, 第2行给 scanf
曲子13963194024:
C语言字符型二维数组用scanf和gets如何输入,举个例谢谢 -
41297杜叔
: #include <stdio.h> int main() { char s[3][20]; int i; printf("输入第一行:"); gets(s[0]); printf("输入第二行:"); scanf("%s",s[1]); for(i=0;i<2;i++) { printf("%s\n",s[i]); }return 0; }
曲子13963194024:
scanf和gets有什么区别,为什么scanf和gets在一起,且scanf在前面就不能同时输出呢? -
41297杜叔
: scanf可以输入所有类型的数据,而gets只能输入字符串;当scanf在前面的时候输入数据和后面的字符串中间会用空格分开,这时gets就无法区分这个空格是否属于gets的输入.你在scanf后面加一个getchar();会解决问题的.
曲子13963194024:
c语言中,输入一个字符串使用scanf(”%s”)和gets()有什么区别 -
41297杜叔
: 其实用scanf("%s",);和gets();本质上没有什么区别,都是将字符数据输入到制定的内存单元中. 假设定义有字符数组(C语言把字符串按字符数组处理)str[30],那么我们向里面输入字符就可以为: scanf("%s",str); gets(str); 他们都...
曲子13963194024:
gets和scanf同在一个程序中出现使程序产生错误 -
41297杜叔
: #include <stdio.h> #include <stdlib.h> #include <conio.h> main() { char c1[100],c2[100]; /*这里应当是一个数组或指针*/ gets(c1); scanf("%s",&c2); printf("%s\n",c1); printf("%s\n",c2); system("pause"); } 上述程序,我在tc2.0下面,不用fflush也可以显示正确结果.
曲子13963194024:
C语言gets 和 scanf -
41297杜叔
: 我忍不住说一下, 希望已经给出答案的同学们不要介意.scanf("%s%f", name[i], &score); 如果你输入 “abc 1234” (注意 引号不是输入的数据,只是为了方便阅读) 这个时候 name[i]会读取数据的,但是读取的数据遇到空格就视为读取结束.这样剩余下的数据就是 一个空格外加1234.当score开始读取的时候,读到的第一个数据是一个空格,而不是希望的float类型的数据,因此整个缓冲区的流都乱了,所有的数据全部没有用处. 解决的办法就是在 %s与%f之间加上一个空格,就可以解决这个问题.
曲子13963194024:
C语言中,,,输入字符串用gets和用循环结构然后加scanf输入,,有什么区别,好像会出现一个不能识别空格 -
41297杜叔
: 代表输入结束 gets()是用来输入字符串的,应该也是以回车代表输入结束 scanf()是什么都可以输入,scanf()是以回车代表输入结束 scanf()中会用到空格 是用作分隔符的 因为scanf()可以输入多个变量,如 canf("%d%d",&a,&b);//表示输入两个整形的数分别赋给变量a、b 在输入另个数时用空格间隔开 但如果canf("%d,%d",&a,&b);//如果两个%d中间用逗号间隔,那么输入时也必须用逗号作为两个数间隔.希望你可以理解 另外,虚机团上产品团购,超级便宜