c语言,c != EOF 表示判断该字符是否文件结束指示符,那我要输入什么才能让程序判断输入的字符是文件结束符
发布网友
发布时间:2022-05-21 20:55
我来回答
共4个回答
热心网友
时间:2023-11-11 12:16
可以在程序中加入有限比较函数strncmp(constchar*s1,constchar*s2,size_tn),然后指定一个字母或者语句为条件,成立时通过If语句和break配合来退出。这里有个代码给你参考看看。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
//1.指定一个文件名
char fileName[256];
printf("请输入文件名:\n");
scanf("%s", fileName);
getchar();
//2.打开文件
FILE *fp = fopen(fileName, "w");
//3.判断文件可用性
if (!fp)
{
return -1;
}
//4.循环录入内容
char buf[1024];
while (1)
{
memset(buf, 0,1024);
fgets(buf, 1024, stdin);
//5.退出命令 comm=exit
//if (strcmp(buf,"comm=exit"))
//此比较有问题,因为当用fgets录入时,如果小于1024时,其会在末尾加上一个回车作为换行操作
if (!strncmp(buf, "comm=exit", 9))//所以这里用有限比较.(相同为0)
{
break;
}
//6.将字符串写入文件中
int i = 0;
while (buf[i])
fputc(buf[i++], fp);//写到文件到中
}
//7.关闭文件
fclose(fp);
return 0;
}
热心网友
时间:2023-11-11 12:16
按ctrl+z
这个ctrl+z 不是跟在字符串结尾的。是另起一行开头打。比如先输入一个absdf,然后回车,然后再输入ctrl+z ,然后回车。。。
热心网友
时间:2023-11-11 12:17
按Ctrl+Z,再按回车。不行,再重复一遍。追问按Ctrl+Z,再按回车,显示结果是换行并把刚输入的字符复制,跟在后面的是->这个箭头,这样做的意义是什么啊
热心网友
时间:2023-11-11 12:17
按住ctrl键,再输入字母z,然后回车追问按Ctrl+Z,再按回车,显示结果是换行并把刚输入的字符复制,跟在后面的是->这个箭头,这样做的意义是什么啊
追答什么意义?
没什么意义啊,这不你要以EOF来结束输入从而退出循环吗?
你程序的意义就是复制显示输入的字符啊。这是你自己的应用逻辑,你程序这样做的。