Ansi C-删除新行字符并将其更改为空格 void createTextFile() { FILE*textFile=fopen(“/Users/Trenae_Alyxandria_Johnson/Desktop/myTextFile.txt”,“w”); 字符c; fputs(“1\n2\n3\n4\n5”,文本文件); fclose(文本文件); textFile=fopen(“/Users/Trenae_Alyxandria_Johnson/Desktop/myTextFile.txt”,“r”); 而(c!=EOF) { c=fgetc(文本文件); } 对于(int i=0;i
我正在尝试删除新行char并将其更改为空格。我知道它不是一个数组,但我想我是在问如何解析文件,看看何时到达新行,然后删除它并用空格替换它,这样第一次输入的1-5现在可以出现在一行上,每行之间用空格字符分隔。 错误: 错误:已订阅 值不是数组、指针或向量Ansi C-删除新行字符并将其更改为空格 void createTextFile() { FILE*textFile=fopen(“/Users/Trenae_Alyxandria_Johnson/Desktop/myTextFile.txt”,“w”); 字符c; fputs(“1\n2\n3\n4\n5”,文本文件); fclose(文本文件); textFile=fopen(“/Users/Trenae_Alyxandria_Johnson/Desktop/myTextFile.txt”,“r”); 而(c!=EOF) { c=fgetc(文本文件); } 对于(int i=0;i,c,delimiter,C,Delimiter,我正在尝试删除新行char并将其更改为空格。我知道它不是一个数组,但我想我是在问如何解析文件,看看何时到达新行,然后删除它并用空格替换它,这样第一次输入的1-5现在可以出现在一行上,每行之间用空格字符分隔。 错误: 错误:已订阅 值不是数组、指针或向量 如果(c[i]='\n')则不需要的循环。您可以删除它` void createTextFile() { FILE *textFile = fopen("/Users/Trenae_Alyxandria_Johnson/Deskt
如果(c[i]='\n')则不需要
的循环。您可以删除它`
void createTextFile()
{
FILE *textFile = fopen("/Users/Trenae_Alyxandria_Johnson/Desktop/myTextFile.txt", "w");
char c;
fputs("1\n2\n3\n4\n5", textFile);
fclose(textFile);
textFile = fopen("/Users/Trenae_Alyxandria_Johnson/Desktop/myTextFile.txt", "r");
while (c != EOF)
{
c = fgetc(textFile);
}
for(int i = 0; i < 6; i++)
{
if(c(i) == '\n')
{
c(i) = ' ';
}
}
printf("%c" , c);
fclose(textFile);
}
char
不是字符串,char是字符。所以c[i]
没有任何意义。如果要存储字符串,请使用以\0
结尾的字符数组:
c = fgetc(textFile);
while (c != EOF){
if(c == '\n')
{
c = ' ';
}
printf("%c" , c);
c = fgetc(textFile);
}
请澄清是否要在修改后更改文件内容或将其打印到stdout
。fgetc
返回int
,而不是char
,并且在初始化之前将c
与EOF
进行比较。编写循环的正确方法是:intc;while((c=fgetc(txtFile))!=EOF){…}
谢谢您的帮助!:)
char s[100];
s[99]='\0'
printf("%s",s);
int c;//return of fgetc type is int
while(EOF!=(c=fgetc(textFile)))
putchar(c == '\n' ? ' ' : c);