scanf与gets连用

  • scanf能不能与gets一起用,请说明原因,详细点哈。 我试过,好像不能_百...
    答:scanf和gets不能混合使用,如果一个程序中用scanf的话,一般不能再用gets,反之亦然。 1:...2:gets()输入字符串时,可以包含空格在内的字符,在回车时,自动将字符串结束标志'\0'赋予字符数组最后一个元素。scanf函数不能输入包含空格字符的字符串,也就是说空格是scanf默认的结束符号。3:如果像...
  • gets函数前有scanf时如何避免scanf的回车键被gets得到输入
    答:1:在 scanf函数 的%d后面加一个空格 scanf("%d ",&a);//可以吸收所有连续的空白(空格,回车,tab)2:在gets前面加一句 rewind(stdin);//清空输入缓冲区
  • scanf()后用gets()出现跳过……求详细的解释……
    答:gets() 是读一行字符串,包括在前在后在半当中的 空格,空白,...scanf("%d",&k); 和 scanf("%d\n",&k); 不同。后者可以吃掉一个 Enter 键。简单保险的办法是用 fflush(stdin); 清除 输入缓冲区。你就 不用担心 输入行 残留 的数字,字符,空白和Enter 键:scanf(。。。); ...
  • gets()和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在一起,且scanf在前面就不能...
    答:scanf可以输入所有类型的数据,而gets只能输入字符串;当scanf在前面的时候输入数据和后面的字符串中间会用空格分开,这时gets就无法区分这个空格是否属于gets的输入。你在scanf后面加一个getchar();会解决问题的。
  • c语言scanf gets问题
    答:scanf的%s格式接收字符串时,以空格或回车作为终止符。而gets只以回车作为终止符。你这里s1==aaa s2==bbb s3=ccc ddd所以输出会这样 puts输完最后输出'\n',就是换行
  • C语言gets与scanf赋值给有初始值的字符数组问题
    答:1、scanf你用的格式为"%c",所以只会读入单个的字符,不管是普通字符还是空格回车tab都会直接输入给对应的char变量。如果用的格式为"%s",那么会忽略空格、回车、tab 。2、gets不会清空,但gets会忽略输入结尾的那个回车,然后加个'\0'来确保字符串正确结束,所以第一个列子中,前10个字符输入给a,...
  • c语言scanf 和gets对字符串的输入
    答:当用scanf("%s",str);来获取这段英文文字的时候,输出会在第一个空格的地方程序结束,如下图:而使用gets()时不会出现这种情况,可以把空格之后的字符也都正常输出来。第一次输入Hello world!后,字符串Hello world!都会被读到输入缓冲区中,而scanf()函数取数据是遇到回车、空格、TAB就会停止,也...
  • 【C语言】gets和puts还有scanf和printf搭配使用
    答:h;printf("输入长和高:");scanf("%d%d", &l, &h); printf("输入字符串a=");flushall();//清空缓冲区gets(a);puts(a);return 0; }这样就可以了。非格式化输入,字符和字符串的输入会受到前次输入缓冲区的影响,因此在gets、getchar等接收字符输入前,应该清空缓冲区。
  • C语言字符型二维数组用scanf和gets如何输入,举个例谢谢
    答: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中间用逗号间隔,那么输入时也必须用逗号作为两个数间隔.希望你可以理解 另外,虚机团上产品团购,超级便宜

    热搜:scanf gets getchar \\ c语言scanf用法举例 \\ scanning和skimming \\ gets 的功能 \\ gets 和scanf s 的区别 \\ scanf后跟getchar \\ gets和scanf一起用 \\ scan and skim \\ getchar和putchar用法 \\ static int \\ getchar和scanf的用法 \\ gets和fgets的区别 \\ 两个scanf连用 \\ 把scanf改成getchar \\ c语言scanf后面接gets \\ c语言scanf和gets的区别 \\ scanf与gets区别 \\ strlen \\ scanf用法详解 \\ c语言gets和scanf \\

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网