相关疑难解决方法(0)

从fgets()输入中删除尾随换行符

我试图从用户那里获取一些数据并将其发送到gcc中的另一个函数.代码是这样的.

printf("Enter your Name: ");
if (!(fgets(Name, sizeof Name, stdin) != NULL)) {
    fprintf(stderr, "Error reading Name.\n");
    exit(1);
}
Run Code Online (Sandbox Code Playgroud)

但是,我发现它最后有一个换行符\n.所以,如果我输入John它最终发送John\n.如何删除它\n并发送正确的字符串.

c string gcc newline fgets

210
推荐指数
5
解决办法
30万
查看次数

我可以用什么代替scanf进行输入转换?

我经常看到人们不鼓励其他人使用scanf并说有更好的选择。但是,我最终看到的只是“不要使用scanf“这里是正确的格式字符串”,并且从来没有提到“更好的替代方案”的任何示例。

例如,让我们看一下这段代码:

scanf("%c", &c);
Run Code Online (Sandbox Code Playgroud)

这将读取最后一次转换后留在输入流中的空白。通常建议的解决方案是使用:

scanf(" %c", &c);
Run Code Online (Sandbox Code Playgroud)

还是不使用scanf

由于scanf不好,用于转换scanf通常无需使用即可处理的输入格式(例如整数,浮点数和字符串)的ANSI C选项有哪些scanf

c scanf

124
推荐指数
7
解决办法
8381
查看次数

在 C 中动态读取用户输入字符串

给定未知长度的用户输入(由最大长度为 100 的单词组成)。有没有办法逐个字符串动态读取它?

我的理解是 scanf 读取一个字符串直到到达一个空格,所以我尝试使用 scanf 但它进入了一个无限循环。

char buf[101];
while (scanf("%s", buf))
{
    //something is done with the string
}
Run Code Online (Sandbox Code Playgroud)

c

3
推荐指数
1
解决办法
1万
查看次数

C - 读取未知长度澄清的字符串

与此相关的问题: 如何读取未知长度的输入字符串?

几个问题:

这条线if(!str)return str是什么意思?

为什么是int ch整数?它不应该是一个炭?

size完全给定函数的目的是什么?

问一个单独的问题因为我理解了这个方法,而不是引擎盖下的一些东西.

c string dynamic-memory-allocation

-1
推荐指数
1
解决办法
220
查看次数

如何在C中获取未知长度的char*?

我有一个如下的C代码:

char* text;
get(text); //or
scanf("%s",text);
Run Code Online (Sandbox Code Playgroud)

但是我试着把它打破了.因为我没有给出尺寸text.
为什么我没有给出大小text,因为我不知道用户要输入的文本大小.那么,在这种情况下我能做些什么呢?如果我不知道字符串的长度,我该如何阅读文本?

c string pointers

-1
推荐指数
1
解决办法
8343
查看次数

标签 统计

c ×5

string ×3

dynamic-memory-allocation ×1

fgets ×1

gcc ×1

newline ×1

pointers ×1

scanf ×1