精华内容
下载资源
问答
  • C语言的scanf()函数在接收输入单个字符时会把上一次输入回车符号当做这次输入的字符,造成无法正确的输入字符数据。这恐怕是初学C的童鞋门遇到的最头疼的问题了。今天给大家提供四种解决方法供借鉴。1、在scanf()...

    C语言的scanf()函数在接收输入单个字符时会把上一次输入的回车符号当做这次输入的字符,造成无法正确的输入字符数据。这恐怕是初学C的童鞋门遇到的最头疼的问题了。

    今天给大家提供四种解决方法供借鉴。

    1、在scanf()中使用'\n'屏蔽回车符号。

    scanf("%d\n",&n); //使用'\n'过滤回车

    scanf("%c",&c);

    2、在scanf()格式串最前面添加空格,屏蔽回车字符

    scanf("%d",&n);

    scanf(" %c",&c); //%c前面加空格,过滤回车

    3、在接收字符前,使用getchar()来读取一次回车符号

    scanf("%d",&n);

    getchar(); //专门用来读取上次输入的回车符号

    scanf("%c",&c);

    4、在接收字符前,使用fflush()清空输入流中缓冲区中的内容

    scanf("%d",&n)

    fflush(stdin); //清空输入流缓冲区的字符,注意必须引入#include 头文件

    scanf("%c",&c);

    好了,以后再也不用为这个问题烦恼了.....

    补充知识:C语言中使用scanf()对字符(串)进行输入的问题

    1. 输入字符串

    #include

    int main() {

    int a;

    char s1[100];

    char s2[100];

    scanf("%d", &a);

    scanf("%s", s1);

    scanf("%s", s2);

    printf("a = %d\n", a);

    printf("s1 = %s\n", s1);

    printf("s2 = %s\n", s2);

    return 0;

    }

    输入

    2019

    hello

    world

    输出

    a = 2019

    s1 = hello

    s2 = world

    没有问题,因为scanf("%s")遇到换行符会自动跳过

    2.输入字符

    #include

    int main() {

    int a;

    char s1;

    char s2;

    scanf("%d", &a);

    scanf("%c", &s1);

    scanf("%c", &s2);

    printf("a = %d\n", a);

    printf("s1 = %c\n", s1);

    printf("s2 = %c\n", s2);

    return 0;

    }

    输入

    2019

    A

    B

    输出

    a = 2019

    s1 =

    s2 = A

    可以看到s1将2019后面的回车符'\n'吸收了,原因是scanf("%c")在读取单个字符时,空格和回车都被视为单个字符。

    解决办法

    使用getchar()吸收掉多余的回车

    #include

    int main() {

    int a;

    char s1;

    char s2;

    scanf("%d", &a);

    getchar(); // 吸收"\n"

    scanf("%c", &s1);

    getchar(); // 吸收"\n"

    scanf("%c", &s2);

    printf("a = %d\n", a);

    printf("s1 = %c\n", s1);

    printf("s2 = %c\n", s2);

    return 0;

    }

    在格式串中过滤掉回车

    #include

    int main() {

    int a;

    char s1;

    char s2;

    scanf("%d\n", &a); // 过滤掉回车

    scanf("%c\n", &s1);

    scanf("%c", &s2);

    printf("a = %d\n", a);

    printf("s1 = %c\n", s1);

    printf("s2 = %c\n", s2);

    return 0;

    }

    以上这篇解决C语言输入单个字符屏蔽回车符的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

    时间: 2020-12-10

    展开全文
  • main() { ...输入一个数字再按空格会继续读入数字,如果输入的数据不足10个,怎么让它在输入完毕后按回车自动跳出循环? ---- #include #include int main() { int i,a[10]; char c; for(i=0
    main()
    {
      int i,a[10];
      for(i=0;i<10;i++)
       scanf("%d",&a[i]);
    }
    输入一个数字再按空格会继续读入数字,如果输入的数据不足10个,怎么让它在输入完毕后按回车自动跳出循环?

    ----

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int i,a[10];
        char c;
        for(i=0;i<10;++i)
        {
            scanf("%d%c",a+i,&c);
            printf("%d\n",a[i]);
            if(c=='\n') break;
        }
        return 0;
    }
    ====

    http://zhidao.baidu.com/question/155576579.html

    展开全文
  • 话题:C语言在运行这个程序的时候,输入数字后,按回车、空格键后,没回答:%d"a; int main(){ nbsp:m=n%10; n/=10; printf(" int n,m; scanf("%d"; goto (na; 0) if ,m); nbsp,n);nbsp#includestdio.hgt话题:用vs...

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解。

    话题:C语言在运行这个程序的时候,输入数字后,按回车、空格键后,没回答:%d"a; int main(){ nbsp:m=n%10; n/=10; printf(" int n,m; scanf("%d"; goto (na; 0) if ,m); nbsp,n);nbsp#includestdio.hgt话题:用vs2010写c程序时,为什么总是输入数字按回车后提示程序停止运行回答:scanf("%d\n",j); 输入格式的问题 scanf输出函数,运到空格或者换行跳格tab键都表示一个数据的输入结束 但是其输入格式当中 %d\n 就会把回车字符也读入到缓存,等到第二个回车或者是空格才表示一个数据输入结束 所以,出现如上情况。去掉回车字符就可以了 scanf("%d",j);话题:为什么紫光华宇输入法,输入时候按空格键会出现浏览器停止回答:重装一遍吧,按道理说没有这样ug. 或者机器中了。 或者浏览器有问题。

    参考回答:修复下浏览器或者重装输入法吧话题:C语言问题 输入数据时不会按下回车就停止输入,按esc停止输入,输回答:完整程序#include #include int main(){ char str[1024], ch; int i=0; w

    参考回答:while(ch!=esc的ascii码){*(ptr++)=ch;,str),ch,ptr=str;ch=getch();你输入了%s"ch=getch();}*ptr=0;printf("void main(){char str[10000]#includelt;conio.hgt话题:键盘输入的问题当我的键盘打字的时候空格键总会有快捷键(一按回答:你的键盘 不算什么 我的键盘 没有反斜杠 把控制面板里边 的键盘设置修改了就好了 有可能是键盘属被修改了 我的就是被 人改成了 一个什么 英格兰 键盘 嘛什么的 然后

    参考回答:进入输入法设置了看一看是不是设置了什么快捷方式话题:codeblocks里面在执行到insert函数里输入数字的时候按回车键就会有回答:你好根据你的描述因为#include希望回答对你有帮助话题:关于搜狗输入法空格键和数字1的问题回答:新版的搜狗就是在输入字的时候默认的是和前面的一个字组词而不是第一个,这个我也有体会,不是系统问题,要是不想的话可以到设置里给关掉吧,自动组词选项,不过我建议还是用搜狗打词组,这样就不会了,还可以提度!

    参考回答:应该默认按空格就是按1如果不是,能否举个例?话题:我用c语言写时,输入数据怎么换行啊?一按回车键就停止运行咯回答:可以按Ctrl + D 来结束输入;,amp,添加getchar()。如果要屏蔽多个换行的话,建议使用scanf("%[^\n]"a);这样就能屏蔽换行 给你两种办法: 在你的scanf();之后;就可以屏蔽一个换行话题:下面这个程序错在哪里,我运行的时候输入数字是对的,但输完后按空回答:改成这样试试:#include#include main(){int i,n;int *ah,*am,*as,*bh,*bm,*bs;int *zh,*zm

    参考回答:不知道你是不是少了 malloc.h 头。。输入数据格式应该是这样 :第一行一个n接下来是n行数,每行六个数字 中间空格随便的。。。turbo C 很少接触了 感觉是头的问题话题:搜狗输入法输入数字按空格键后会出现小数点,如何消除回答:“搜狗拼音输入法”数字后面的句号设置成默认为小数点的方法有:1、点击"shift"键转换成半角。2、打开小键盘,选择“点”的符号。3、升级“搜狗拼音输入法”,新版本.2.2及以上的版本,打数字“句号”会自动转化成“.”。

    展开全文
  • 输入回车后,停止赋值。(经检验,当输入的数字个数不是8的倍数时,最后一组不全的abcd无法进行while后面的函数) 用法举例: 多组输入,每组输入包含 4个正整数 a, b, c, d,依次代表第一个数的分子,第一个数的...

    while(~scanf("%d %d %d %d",&a,&b,&c,&d))
    当输入一长串数的时候,数字依次赋值给a,b,c,d,当这一轮的abcd执行完while中的语句后,又将接下来的4个数字依次赋值给下一轮的abcd。输入回车后,停止赋值。(经检验,当输入的数字个数不是8的倍数时,最后一组不全的abcd无法进行while后面的函数)

    用法举例:
    多组输入,每组输入包含 4个正整数 a, b, c, d,依次代表第一个数的分子,第一个数的分母,第二个数的分子,第二个数的分母。

    样例输入:
    1 2 1 2 1 4 1 2

    样例输出
    1/1
    3/4

    #include<stdio.h>
    int gcd(int a,int b)
    {
    	if(b==0)return a;
    	else return gcd(b,a%b);
    }
    main()
    {
    	int a,b,c,d,g,fz,fm;
    	while(~scanf("%d %d %d %d",&a,&b,&c,&d))
    	{
    		fz=a*d+b*c;
    		fm=b*d;
    		if(fz%fm==0||fz==0) printf("%d/1\n",fz/fm);
    		else
    		{
    			g=gcd(fz,fm);
    			printf("%d/%d\n",fz/g,fm/g);	
    		}	
    	}
    }
    

    参考:北大ACM poj3979 分数加减法
    https://blog.csdn.net/gubojun123/article/details/7798218

    展开全文
  • 因为:scanf("%s",str); 遇到空格就停止接收后面的字符。scanf("%s",str,10);不能接收带空格的字符串输入,虽然它的指定长度是10, 但是遇到空格时即使没有满... //可以读取空格, 回车才会结束输入2.使用"%[^\n]"可...
  • C语言输入带空格的字符串

    万次阅读 多人点赞 2017-12-08 12:52:43
    1.用 gets() ,它可以接收带空格的字符串, 直到回车才结束输入 char buf[80]={0};  gets(buf); //可以读取空格, 回车结束输入 2.使用"%[^\n]" 也是可以接收输入一个带空格的字符串,直到回车结束接收 ...
  • C语言输入一串字符 将其逆序c

    千次阅读 2018-11-23 12:45:46
    #include&lt;stdio.h&gt; #include&lt;string.h&gt;...//遇到空格和回车就停止读入gets遇见回车停止 d=strlen(s); for(i=0;i&lt;d/2;i++) { t=s[i]; s[i]=s[d-1-i]; s[d-1-i...
  • scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。   ① 遇空格、“回车”、“跳格”键。   ② 遇宽度结束。   ...
  • cincin是C++中最常用的输入语句,当遇到空格或者回车键即停止如:#include #include using namespace std;int main(){chara[50];cin>>a;cout<return0;}输入:abcd遇回车输出abcd缺点:只能输入没有空格的...
  • #C语言 fgets, gets, scanf对于输入完毕后的回车符的处理 PS. 1 注意fgets函数的第二个参数n,是包括结束符在内的总字数,实际强制性从键盘只能读入n-1个字符。 2 strlen函数遇结束符就会停止,返回结束符之前的...
  • 这里我们通过 Max 来决定输入的最大长度,当输入字符时会回显 * ,当按下回车键后就会停止输入并将输入的内容保存到passward数组中,按下删除键可以删除数组中的字符,并在屏幕上填充空格,造成删除的感觉. #include<...
  • } printf("\n请输入折半查找表主表长度,输入结束请按#号键:"); scanf("%d", &S2.length); printf("\n请输入索引顺序表主表:"); for(i = 0; i ; i ++) { scanf("%d", &S3.list[i].key); if(S3.list[i].key == '#'...
  • 关于c语言输入输出

    2013-04-18 18:58:00
     最常用的输入函数算是scanf函数了,要注意的就是它遇到空格、tab和回车就会停止读取,并且空格、tab和回车符仍存在于缓冲区中,如果下一个读取的是字符的话就得注意了。 2.fgets函数  作用:读取完整的一行数据...
  • c语言字符串输入输出 单个字符和字符数组c语言字符串输入输出输入单个字符输入字符数组输出单个字符输出字符数组c++字符串输入... '\n’遇到空白字符(包括空格、制表符、换行符)时均会停止输入 _ 2. while((a[i]=get
  • 如何实现用户输入一个字符后停止输入,执行下一条代码? scanf或getchar函数无法打断用户输入,只有等到用户输入回车才会结束,有没有办法在输入回车前就打断用户输入?
  • c语言scanf()停止接受输入及scanf("%c",&c)吃掉回车或者空格字符的问题 格式化输入函数scanf 即按照格式字符串的格式,从键盘上把数据输入到指定的变量之中。Scanf函数的调用的一般形式为: scanf(“格式...
  • 1.最容易的,将一个字符串分为一个一个字符输入 ...//遇到换行停止输入,并且将换行替换为/0 printf("%s/n",s); 但是如果在这段程序前还有其他类型的输入,则需要把回车吃掉,即加一条scanf("%*c"),因为sca
  • C语言中从键盘输入字符串时的一些问题

    万次阅读 多人点赞 2019-05-17 20:52:10
    scanf()在从键盘读入字符时并不会根据所定义的字符数组的大小来控制读入多少个 , 而是从scanf( ) 中传入的地址开始一直访问下一个元素的内存 , 碰见空格符或者回车符时才停止读入并存入结束符’\0’ , 这就有可能...
  • 相信初学者,都有过这样的经历。...这个扫描器在扫描过程中判断停止的依据就是“空白符”,空格啊,回车啊什么的都算做是空白符。scanf()方法在扫描到空白符的时候会将前面的数据读取走,但会丢下空白符“\r”在缓冲...
  •  在C语言中空白字符括:空格、换行(\n)、回车(\r)、水平制表符(\t)、换页符(\f)、垂直制表符(\v)。在scanf读取的一个参数是数时,开始输入的空白字符会被忽略,读取数字直到遇到第一字符不是数字就会停止;...
  • cincin是C++中最常用的输入语句,当遇到空格或者回车键即停止如:#include #include using namespace std;int main(){chara[50];cin>>a;cout<return0;}输入:abcd遇回车输出abcd缺点:只能输入没有空格的...
  • C语言带空格的字符串输入(记)

    千次阅读 2020-09-04 11:26:24
    gets()可以读取空格,知道回车才会结束输入 char str[30]; gets(str); //可以读取空格,回车结束 使用"%[^\n]"可以接受输入带空格的字符串,回车结束。 char str[30]; scanf("%[^\n]",str); 可以读取空格,回车结束...
  • ,str)无法实现,因为这个输入方式,遇到空格或者回车符就会停止输入。(备注:全文中出现的str都表示一个字符串数组,或者char *) 一. 输入单组数据 方法一:使用gets(str)来实现 #include&lt;stdio.h&...
  • c语言中给 char a[]数组的各种输入

    千次阅读 2019-01-13 11:47:46
    2.对于scanf来说,一遇到空格或者回车就会自动停止输入,而且scanf也有%c和%s,对于%c就是直接读入字符,对于%s,遇到空格或者回车后,还会自动在末尾加一个'\0',也会保存在a[]数组中 3 对于getchar()来说,空格和...
  • 很多时候我们需要写入数据到文件中时都觉得很困扰,因为格式乱七八槽的,可读性太差了,...1、fscanf(可以从一个文件流中格式化读出数据,遇到空格或回车停止)原型: int fscanf(FILE *stream, const char *fo...
  • 这几天组里开始催学字符串输入了,我早就把字符串输入学辽,信心满满地打开航电 ...也可以把\n换成其他的,比如换成a,字符串里就遇到a停止输入。 然而,就这样改一下输入结果还是不对,因为它居然把回车也算成了字符
  • 但是scanf("%s",str)不能接受含有空格符的字符串,scanf()函数取数据是遇到回车、空格、TAB就会停止,剩余字符串将留在缓冲区中。 输入scanf()函数: 1:用于保存读入值的变量必须都是变量...

空空如也

空空如也

1 2 3 4
收藏数 79
精华内容 31
关键字:

c语言输入回车停止输入

c语言 订阅