关于 scanf() 和空格的问题

问题描述 投票:0回答:1

我是C新手,(刚刚开始学习),所以请不要太在意我的无知。

现在回答问题。它涉及

[^\n]
scanf()
的使用(以我的学习书为例)。然而,似乎根本不起作用。

提前谢谢您。

以下代码片段在编译时不会打印任何内容(如果用户输入带有空格的字符串)。为什么?

#include <stdio.h>

int main (void) {

    char str[100];

    printf("Enter a string: ");
    scanf("%[˄\n]", str);
    printf("%s\n", str);
  
    return 0;
}

因此,例如,如果用户输入

This is a text
,则不会输出任何内容!另一方面,如果没有
[^\n]
,它会打印字符串直到第一个空格。

c scanf
1个回答
0
投票

您使用了错误的符号

˄
。正确的是 ASCII 字符集中的字符:
^
。如果您从互联网上的某个地方复制代码,并且它应用了自动更正功能,认为它是文本,通常会发生这种情况。

如果某些编译器在代码中发现可疑字符,则会输出警告。请注意这些警告!不幸的是,一些编译器只是说“你的代码有一个坏字符”,而不说是哪个代码以及在哪里。

© www.soinside.com 2019 - 2024. All rights reserved.