92得票11回答
如何读取未知长度的输入字符串?

如果我不知道这个单词的长度,我就不能写出 char m[6];, 这个单词的长度可能是十个或二十个字长。 我该如何使用 scanf 从键盘获取输入?#include <stdio.h> int main(void) { char m[6]; printf(&quo...

89得票9回答
scanf的缺点

我想了解 scanf() 的缺点。 在许多网站上,我都看到过使用 scanf 可能会导致缓冲区溢出。这是什么原因?scanf 还有其他缺点吗?

81得票9回答
Python中的sscanf

我正在寻找Python中等效于sscanf()的方法。我想要解析/proc/net/*文件,在C语言中,我可以像这样做:int matches = sscanf( buffer, "%*d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X...

72得票4回答
C语言中逐行读取文本文件

我一直在为我的CIS课程做一个小练习,但对于C语言读取文件的方法感到非常困惑。实际上,我只需要逐行读取文件,并使用每行所收集到的信息来进行一些操作。我尝试使用getline方法和其他方法,但都没有成功。 我的代码目前如下:int main(char *argc, char* argv[]){ ...

71得票6回答
如何使用C语言从键盘读取字符串?

我想读取用户输入的字符串,但我不知道字符串的长度。由于C语言中没有字符串,所以我声明了一个指针:char * word; 并且使用了 scanf 函数从键盘读取输入:scanf("%s" , word) ; 但我遇到了分段错误。 当长度未知时,如何在C语言中从键盘读取输入?

69得票6回答
sscanf和atoi将字符串转换为整数有什么区别?

gcc 4.4.4 c89 如何将字符串转换为整数值更好? 我已经尝试了两种不同的方法:atoi和sscanf。两者都能按照预期工作。char digits[3] = "34"; int device_num = 0; if(sscanf(digits, "%d", &devic...

68得票11回答
为什么在C语言中使用printf()和scanf()时每次都需要指定数据类型?

从下面的代码片段可以看出,我声明了一个char变量和一个int变量。当代码被编译时,必须识别变量str和i的数据类型。为什么在扫描变量时需要再次指定%s或%d告诉它是字符串还是整数变量?难道编译器不能在我声明变量时就能够识别吗?#include <stdio.h> int mai...

66得票7回答
使用C语言中的scanf函数读取双精度浮点数

我尝试使用C语言的scanf()读取两个值,但系统写入内存中的值与我输入的值不相等。这是代码:double a,b; printf("--------\n"); //seperate lines scanf("%ld",&a); printf("--------\n"); scanf...

61得票7回答
uint8_t,uint16_t等的格式说明符是什么?

如果我有一个整数变量,我可以使用以下所示的格式说明符%d来使用sscanf。sscanf (line, "Value of integer: %d\n", &my_integer); 我在哪里可以找到uint8_t、uint16_t、uint32_t和uint64_t的格式说明符? u...

58得票4回答
使用scanf()读取字符串时,不要超过字符串的大小。

编辑:我的课程要求我使用 scanf。因此,建议其他输入方式并不是我要寻找的解决方案(如果有一种方法涉及 scanf,除外)。如果我正在为一个小项目(例如游戏)读入用户输入。假设我问: 你想玩吗?,这将接受 yes 或 no 的答案。那么我编写了如下简单的代码:#include <std...