我有一个简单的程序,可以读取所有文本文件字符,在读取过程中,它会排除一些字符。
这里有一个例子来说明
这是我的txt文件的内容:
a b c d e e
f g d h i j
d d d e e e
我想删除字符"d"及其后面的空格以获得以下结果:
a b c e e
f g h i j
e e e
我的程序在读取后没有删除字符"d"及其空格。
这是我用来打开和读取 txt 文件的代码:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
if(argc==2)
{
FILE *file;
file = fopen( argv[1], "r" );
int c;
char x = ' ';
if (file == NULL)
{
printf("Errorn");
return 1;
}
while(x != 'd')
{
c = fgetc(file);
if( feof(file) )
{
break ;
}
printf("%c", c);
}
fclose(file);
}
return 0;
}
只需使用if
进行条件打印。
另外,让你的无限循环变得明显。
您可以通过简单地执行 fgetc 来跳过空间。
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
if(argc==2)
{
FILE *file;
file = fopen( argv[1], "r" );
int c;
if (file == NULL)
{
printf("Errorn");
return 1;
}
while((c = fgetc(file)) != EOF)
{
if(c == 'd')
{
fgetc(file); // Skip space
}
else
{
printf("%c", c);
}
}
fclose(file);
}
return 0;
}