c 语言不定项输入,输出到同一行,使用while(EOF!=scanf(…)){}
时间: 2024-10-08 17:13:34 浏览: 32
在 C 语言中,当你需要从标准输入流(通常是键盘)读取数据,并希望将输入内容显示在同一行直到用户完成输入或按下 EOF 键(通常表示文件结束或Ctrl+D),可以使用 while 循环结合 scanf 函数和 EOF 条件来实现。这是一个基本的例子:
```c
#include <stdio.h>
int main() {
char input[100]; // 存储用户输入
int isDone = 0; // 标记是否完成输入
while (isDone == 0) { // 当用户未按 EOF 进行输入
printf("请输入一些文本(按 Ctrl+D 结束输入): ");
if (scanf("%s", input) == 1) { // 如果输入成功,移除换行符
input[strcspn(input, "\n")] = '\0'; // 或者用 fgets 替代,以处理换行符
printf("您输入的内容: %s\n", input); // 显示输入内容
} else if (feof(stdin)) { // 如果遇到 EOF,则标记为已完成
isDone = 1;
} else { // 处理其他错误情况
perror("scanf failed");
}
}
return 0;
}
```
在这个例子中,`scanf` 检测输入,而 `feof` 则检查是否到达了输入流的结尾。当用户按下 EOF 或完成正常输入后,循环会终止。
阅读全文