相关疑难解决方法(0)

为什么获取功能如此危险以至于不应该使用它?

当我尝试编译使用gets()GCC函数的C代码时,

我明白了

警告:

(.text + 0x34):警告:`gets'函数很危险,不应该使用.

我记得这与堆栈保护和安全性有关,但我不确定为什么?

有人可以帮我删除这个警告并解释为什么会有这样的使用警告gets()

如果gets()是如此危险,为什么我们不能删除它?

c gets fgets buffer-overflow

210
推荐指数
9
解决办法
14万
查看次数

如何使用scanf输入空格?

使用以下代码:

char *name = malloc(sizeof(char) + 256); 

printf("What is your name? ");
scanf("%s", name);

printf("Hello %s. Nice to meet you.\n", name);
Run Code Online (Sandbox Code Playgroud)

用户可以输入他们的名字,但是当他们输入一个像空格一样的名字时Lucas Aardvark,scanf()只需切断后面的所有内容Lucas.如何设置scanf()允许空格

c string whitespace printf scanf

121
推荐指数
8
解决办法
31万
查看次数

C中的gets()函数

我又需要帮助!我认为使用该gets()函数非常酷,因为它就像scanf()我可以获得带有空格的输入.但我在其中一个线程(学生信息文件处理)中读到它不好用,因为根据它们,它是一个用于创建缓冲区溢出的魔鬼工具(我不明白)

如果我使用该gets()功能,我可以这样做.输入你的名字:Keanu Reeves.

如果我使用scanf(),我只能这样做.输入你的名字:Keanu

所以我听取了他们的建议并用我的gets()代码替换了fgets().问题是现在我的一些代码不工作了...有没有比其他任何功能gets()fgets()能读整条生产线和忽略空格.

c

28
推荐指数
2
解决办法
10万
查看次数

如何使用scanf()扫描带有空格的字符串?

我想写一个用户可以输入评论的子程序.我使用scanf("%s", X)并让他们输入注释,但它只能将字存储在字符串中的空格键之前.

如何将整个句子存储到字符串或文件中来解决此问题?

我的代码如下:

FILE *fp;
char comment[100];
fp=fopen("comment.txt","a");
printf("You can input your comment to our system or give opinion to the musics :\n");
scanf("%s",comment);
fputs(comment,fp);
Run Code Online (Sandbox Code Playgroud)

c input scanf

4
推荐指数
2
解决办法
8万
查看次数

标签 统计

c ×4

scanf ×2

buffer-overflow ×1

fgets ×1

gets ×1

input ×1

printf ×1

string ×1

whitespace ×1