精华内容
下载资源
问答
  • scanf输入空格会停止的问题

    千次阅读 2020-02-21 14:45:06
    scanf输入空格会停止的问题 问题: 想要输入一段带空格的字符串,发现后面的程序会停止输入 原因: scanf只有在遇到\n,也就是是回车时才结束输入,但是遇到空格和tab时就会停止读取 解决方法 方法一: 使用字符串...

    scanf输入空格会停止的问题

    问题:
    想要输入一段带空格的字符串,发现后面的程序会停止输入

    原因:
    scanf只有在遇到\n,也就是是回车时才结束输入,但是遇到空格和tab时就会停止读取

    解决方法
    方法一:
    使用字符串函数gets()来进行输入

    gets(str);
    

    方法二:
    使用scanf

    scanf( "%[^\n]", str );
    
    展开全文
  • int n; char a; scanf("%d%c",&n,&a); 若输入"1 “,则n为1,a为’ '(空格scanf(”%d %c",&n,&a); 则会将空格视为结束符跳过相当于cin>>n>>a;

    int n;
    char a;
    scanf("%d%c",&n,&a);
    若输入"1和空格",则n为1,a为’ '(空格)
    scanf("%d %c",&n,&a);
    则会将空格视为结束符跳过相当于cin>>n>>a;

    展开全文
  • c语言中如果输入空格的字符串有gets(s) 和scanf("%[^\n]",s)两种方式。如下程序: #include #include int main() { int len=0,i=0,k=0; char s[128];  //scanf("%[^\n]", s); //scanf输入空格的字符串...

    c语言中如果输入带空格的字符串有gets(s) 和scanf("%[^\n]",s)两种方式。如下程序:

    #include<stdio.h>
    #include<string.h>

    int main()
    {
    int len=0,i=0,k=0;
    char s[128];
         //scanf("%[^\n]", s); //scanf输入带空格的字符串
     gets(s);             //gets(s)输入带空格的字符串
         
          len = strlen(s);
          i = len -1;
     
    while(s[i] != ' ')
    {
     k++;
     i--;
     if(i == 0) break;
    }
         if(i == 0) k = len;
    printf("%d\n",k);
         return 1;
    }

       但输入单个字符时,由于scanf("%c",&c)和getchar(c)都会接受'\n'换行符,所以输入效果会出现偏差。我们可以先接受'\n'字符串再接受我们想要的。如下程序:

        #include<stdio.h>
    #include <stdlib.h>


    int main()
    {
        int *N,*M,*OUT;
    char str,str2;
    int i,j,n,m,a,b,max,k=0;


    scanf("%d %d",&n,&m);
    N=(int *) malloc(n * sizeof(int));
    M=(int *) malloc(m* sizeof(int));
    OUT=(int *) malloc(m* sizeof(int));
    for(i=0;i<n;i++)
    {
       scanf("%d",&N[i]);
    }
    for(i=0;i<m;i++)
    {

    //getchar();
       //str = getchar();
    fflush(stdin);
    scanf("%c",&str);
    scanf("%d",&a);
    scanf("%d",&b);
            
    if(str == 'Q')

     max = N[a-1];
    for(j=a;j<b;j++)
    {
    if(N[j] > max) max = N[j];
    }
    OUT[k++] = max;
    }
            if(str == 'U')
    {
     N[a-1]= b;
    }
    }


    for(i=0;i<k;i++)
    printf("%d\n",OUT[i]);


    free(N);
    free(M);
    free(OUT);

         return 1;
    }

    其中fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上 。我们既可以用fflush(stdin),也可以用getchar处理多余的‘\n’字符或者再多用一个scanf("%c",&str)等方法处理


    展开全文
  • scanf输入字符串遇到空格

    万次阅读 多人点赞 2019-06-02 12:34:49
    scanf输入字符串(含有空格的字符串,例如:“I love you!”)时,总是在空格处停止扫描。我们用scanf("%s",str);输入 “I love you!” 字符串后,str输出却只有 “I” ,这并不是我们想要的。这是因为scanf扫描到 ...

    使用scanf时对空格处理?

    问题描述

    scanf输入字符串(含有空格的字符串,例如:“I love you!”)时,总是在空格处停止扫描。我们用scanf("%s",str);输入 “I love you!” 字符串后,str输出却只有 “I” ,这并不是我们想要的。这是因为scanf扫描到 “I” 后面的空格,就认为对str的扫描结束(即空格没有被扫描),并舍弃后面的" love you!",只得到了 “I” 。

    解决办法

    在这里给出了两种解决办法,可以让空格也被扫描到str里。

    1. gets()函数 ,用gets()替代scanf();
      gets可以无限读取字符串,不会判断上限,以回车结束读取。其用法为gets(s),其中s为字符串变量(字符串数组名或字符串指针)。简单的理解就是读入一串字符(遇到回车结束),存到s中。
    #include<stdio.h>
    int main()
    {
       char str[50];
       gets(str);
       printf("%s\n",str);
       return 0;
    }
    
    1. scanf("%[^\n]",str) ,遇到"\n"结束
      '^'含有非的意思
      “%[^\n]“即遇到\n结束。
      如果使用”%[^v]”,那我们输入 “I love you!” ,输出的就是 “I lo” ,现在能懂这个非的意思了吧…
    #include<stdio.h>
    int main()
    {
    	char str[50];
    	scanf("%[^\n]",str);//"%[^v]"
    	printf("%s\n",str);
    	return 0;
    }
    

    总结

    简单的给出了两种我平时使用scanf时遇到空格的处理方法,希望能对你也有所帮助。

    展开全文
  • 如何让scanf()函数正确接受有空格的字符串?如: I love you!    #include  int main()  {  char str[80];  scanf("%s",str);  printf("%s",str);  return 0;  }  输入:...
  • scanf空格后继续输入

    万次阅读 2016-09-18 21:59:27
    如何让scanf()函数正确接受有空格的字符串?如: I love you!    #include  int main()  {  char str[80];  scanf("%s",str);  printf("%s",str);  return 0;  }  输入:...
  • 关于在字符数组中利用scanf函数输入空格等问题 控制串/数组 中的空白符使 scanf() 在输入流中跳过一个或多个空白行。空白符可以是空格(space)、制表符(tab)和新行符(newline)。 本质上,控制串中的空白符使 scanf() ...
  • 今天用scanf输入字符串的时候,输出乱码,但是我如果指定写死了字符串就没有乱码 int main() { //1.不乱码情况,但是写死了 //char str[N]="I am a good boy"; //2.乱码情况 char str[N]; printf("请输入一条...
  • 如何使用scanf输入空格的字符串

    千次阅读 2019-12-23 00:25:45
    学过字符串,我们都知道当输入一串带空格的字符 (通俗的说,就是英语中由一个个单词组成的一句话)时,举个例子,比如my name is aeiou 如果你用scanf直接输入的话, 像这样 scanf("%s",str); 结果是这样的...
  • scanf空格

    2021-03-03 20:52:34
    1.scanf的%c格式可以读入空格和换行 例: #include<cstdio> int main(){ int a; char c,str[10]; scanf("%d%c%s",&a,&c,str); printf("a=%d,c=%c,str=%s",a,c,str); return 0;} 2.字符数组使用...
  • C/C++中用scanf 和 cin输入字符串时如果遇到空格会被截断,然而很多时候输入的字符串都是需要带有空格的,这就给我们带来了困惑,有的小伙伴可能会用gets或getline等解决,今天给习惯用scanf的小伙伴提供一个小trick...
  • scanf输入字符串以及空格问题

    千次阅读 2020-02-05 18:53:09
    输入 输入字符串可选择使用数组,并在数组后加一个界限,如以下例题就在str[10]右面加上界限10. 注意数组界限为10,最多...scanf输入字符串的时候不会接收Space空格,回车Enter,Tab键,则认为输入结束。scanf函...
  • 若只是scanf( “%d” ,&a ); 或scanf("%c",&b); , **%**前加不加空格,输出结果都...%后加空格输入时需要多打一个非 空格、enter键、tab键 ,输出结果无空格 若字符串需要空格,可以使用gets( str ); ...
  • scanf输入含有空格的字符串

    千次阅读 2015-05-01 18:56:11
    1、可以使用scanf的扫描集来 扫描允许的字符串来接收用户输入的数据。如:以下代码#import int main(int argc, const char * argv[]) { @autoreleasepool { char str[100]; scanf("%[A-Z]", str);
  • scanf输入字符串遇到空格问题

    千次阅读 2020-04-18 17:04:03
    经过调试发现,遇到空格scanf认为输入完成了,实际上这个字符串输入的是Today 经过查找问题,解决方法有两个:(代码有注释 ) #include <stdio.h> #include <string.h> int main() { int upper=0,...
  • scanf读入空格

    千次阅读 2018-05-21 11:00:20
    char s[100]; scanf("%[^\n]", &amp;s);
  • 我们用scanf()函数输入一个带空格的字符串函数时,经常会在第一个空格时就停止输入。下面有两种方法可以完整输入字符串1)利用strcat()函数来实现带空格字符串的输入,可以用字符串追加函数strcat()来连接每个单词。...
  • 我们用scanf()函数输入一个带空格的字符串函数时,经常会在第一个空格时就停止输入。 下面有两种方法可以完整输入字符串 1)利用strcat()函数来实现带空格字符串的输入,可以用字符串追加函数strcat()来连接每...
  • d)这个语句会把回车和空格也当成字符输入进去,所以这个输时一定要注意格式!!输入一个数,加回车时间有两种方法去回车:1.getchar();scanf("%c",&amp;n); //getchar吞掉回车符号2.scanf(" %c&...
  • 如何使用scanf输入多个带空格的字符串

    千次阅读 多人点赞 2018-04-04 17:04:06
    写题时使用scanf输入,但是我想优化一下,让程序的的通用性更强一些,故我想使用scanf实现带空格的字符串的输入,但是出现了疑惑,字符串带空格输入怎么弄,显然scanf("%s",str);肯定不行,所以我查了资料...
  • scanf空格的读取

    2021-02-20 00:25:41
    只有%c能读取到空格字符,其他占位符豆浆空格作为结束判断标志。 %d以空格作为结束标志,%c读到空格字符,%s以第二个空格字符作为结束标志。
  • main() { ...输入一个数字再按空格会继续读入数字,如果输入的数据不足10个,怎么让它在输入完毕后按回车自动跳出循环? ---- #include #include int main() { int i,a[10]; char c; for(i=0
  • 先看下面这段程序  #include int main() { int a; char b[100]; printf("Please input the number:\n",a);...scanf("%d",&a);  printf("a = %d",a); printf("Please input the string:\n",b);
  • 输入空格的字符串,要用到一个格式字符:%[] --> 一个字符集。 “%[]”的作用是扫描字符集合: 例如:scanf(“%[^\n]”,str); 具体作用是:如果输入的字符属于方括号内字符串中某个字符,那么就提取该字符...
  • 关于scanf空格或者‘\n‘问题

    千次阅读 2020-09-25 21:30:00
    scanf是用来格式化输入的例如你要输入 1,2,3 你想读到1和2和3 哎呀呀很容易啊 scanf("%d,%d,%d",&a,&b,&c); 这样子1和2和3就会完美存入a,b,c啦 那为啥子不推荐在scanf("")里面写’\n’呢主要是因为,你...
  • 在linux系统下,使用scanf函数不能输入空格,所以编者就自己封装了一个EncapScanf函数,希望可以帮助到读者。 #include #include #include int EncapScanf(char *_pcBuffer) //封装输入函数,解决scanf不能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 170,423
精华内容 68,169
关键字:

scanf怎么输入空格