我是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]
,它会打印字符串直到第一个空格。
您使用了错误的符号
˄
。正确的是 ASCII 字符集中的字符:^
。如果您从互联网上的某个地方复制代码,并且它应用了自动更正功能,认为它是文本,通常会发生这种情况。
如果某些编译器在代码中发现可疑字符,则会输出警告。请注意这些警告!不幸的是,一些编译器只是说“你的代码有一个坏字符”,而不说是哪个代码以及在哪里。