gpt4 book ai didi

c - 如何使用 scanf (不是 fgets)读取文本行?

转载 作者:行者123 更新时间:2023-11-30 21:28:00 26 4
gpt4 key购买 nike

我需要编写一个程序,从输入中读取(可能)多行文本。该程序需要使用 scanf 和 printf,并且没有其他库函数(因此不需要 fgets、getchar 或其他任何函数。

我知道可以使用以下内容来一行阅读:

  scanf("%[^\n]s", text);

但这留下了一个\n ,其中:

a) 需要添加到名为 text 的数组末尾

b) 阻止其余输入行被读入。

这是我到目前为止的代码

void print_line()
{
int i = 0;

while(i < 12)
{
char input_text[100];


/*printf("Input text here: ");*/
/*scanf("%[^\n]s\n", input_text);*/
/*EDIT */
scanf("%99[^\n]", input_text);

/*Can't use fgets*/
/*fgets(input_text, 100, input);*/
printf("Text: %s", input_text);

i++;
}

}

我已经运行了它,它只读取文件的第一行并重复 12 次。

编辑:有人建议我试试这个:

      scanf(" %99[^\n]", input_text);

哪种方法有效,它读取所有输入行,但将它们全部读取为一大行,忽略换行符和缩进字符(空格、制表符等)。

最佳答案

请阅读 scanf 的手册页。删除格式字符串中的 s。检查返回值。

关于c - 如何使用 scanf (不是 fgets)读取文本行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46285235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com