Questions tagged «scanf»



2
用scanf读取字符串
我对某些事情感到困惑。我的印象是,使用读取C字符串的正确方法scanf()遵循 (不要介意可能的缓冲区溢出,这只是一个简单的示例) char string[256]; scanf( "%s" , string ); 但是,以下似乎也可以工作, scanf( "%s" , &string ); 这仅仅是我的编译器(gcc),纯粹的运气还是其他?
147 c  scanf 

11
如何允许使用scanf输入空格?
使用以下代码: char *name = malloc(sizeof(char) + 256); printf("What is your name? "); scanf("%s", name); printf("Hello %s. Nice to meet you.\n", name); 用户可以输入他们的名字,但是当他们输入带有空格的名字时Lucas Aardvark,scanf()后面的所有内容都会被切断Lucas。我如何留出scanf()空间
129 c  string  printf  scanf  whitespace 

8
我可以用什么代替scanf进行输入转换?
我经常看到人们不鼓励其他人使用scanf并说有更好的选择。但是,我最终看到的只是“不要使用scanf”或“这里是正确的格式字符串”,而且从来没有提到任何“更好的选择”的示例。 例如,让我们看一下这段代码: scanf("%c", &c); 这将读取最后一次转换后留在输入流中的空白。通常建议的解决方案是使用: scanf(" %c", &c); 还是不使用scanf。 由于scanf不好,用于转换scanf通常无需使用即可处理的输入格式(例如整数,浮点数和字符串)的ANSI C选项有哪些scanf?
125 c  scanf 

4
unsigned short int的格式说明符是什么?
我有以下程序 #include <stdio.h> int main(void) { unsigned short int length = 10; printf("Enter length : "); scanf("%u", &length); printf("value is %u \n", length); return 0; } 使用哪个进行编译时gcc filename.c发出以下警告(scanf()在行中)。 warning: format ‘%u’ expects argument of type ‘unsigned int *’, but argument 2 has type ‘short unsigned int *’ [-Wformat] 然后我提到的C99 specification …
124 c  scanf 

4
scanf()将新行char留在缓冲区中
我有以下程序: int main(int argc, char *argv[]) { int a, b; char c1, c2; printf("Enter something: "); scanf("%d",&a); // line 1 printf("Enter other something: "); scanf("%d", &b); // line 2 printf("Enter a char: "); scanf("%c",&c1); // line 3 printf("Enter another char: "); scanf("%c", &c2); // line 4 printf("Done"); // line 5 …
87 c  scanf 

6
如何防止scanf导致C中的缓冲区溢出?
我使用以下代码: while ( scanf("%s", buf) == 1 ){ 防止缓冲区溢出以使其可以传递随机长度的字符串的最佳方法是什么? 我知道我可以通过调用例如来限制输入字符串: while ( scanf("%20s", buf) == 1 ){ 但是我更希望能够处理用户输入的任何内容。还是不能使用scanf安全地完成此操作,而我应该使用fgets?

9
scanf的缺点
我想知道的缺点scanf()。 在许多站点中,我读到使用scanf可能会导致缓冲区溢出。这是什么原因呢?还有其他缺点scanf吗?
68 c  input  user-input  scanf 

11
为什么每次都要在C中指定数据类型?
从下面的代码片段中可以看到,我声明了一个char变量和一个int变量。编译代码时,它必须标识变量str和的数据类型i。 为什么在扫描变量时需要通过指定%sor%d来再次告知它是字符串还是整数变量scanf?声明变量时,编译器还不够成熟,无法识别吗? #include <stdio.h> int main () { char str [80]; int i; printf ("Enter your family name: "); scanf ("%s",str); printf ("Enter your age: "); scanf ("%d",&i); return 0; }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.