作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要编写一个程序,从输入中读取(可能)多行文本。该程序需要使用 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/
我是一名优秀的程序员,十分优秀!