基本上我应该制作一个复制 Unix -wc 命令的程序。标志 -l、-w、-c 和 -L 应该分别显示行数、单词数、字符数和行内字符数。
我在阅读文本文件时遇到问题(第一次在 C 中进行)。我使用 GDB 并发现我的问题在于读取文件。一段时间后,无论出于何种原因,它都会读取空字符。
请假设我的代码一切正常,除了读取文件。
这是我的代码:
void readInFile(char** argv, int arg, int addFlags, int argc)
{
FILE *myFile;
char c;
int wordCount = 0, lineCount = 1, longestLine, characterAmount = 0;
int charactersInLine = 0;
myFile = fopen(argv[arg], "r");
if(!myFile)
{
printf("%s not found!", argv[arg]);
exit(EXIT_FAILURE);
}
while(c != EOF)
{
c = fgetc(myFile);
putchar(c);
characterAmount++;
charactersInLine++;
if(c == ' ')
wordCount++;
if(c == '\n')
{
if(charactersInLine > longestLine)
longestLine = charactersInLine;
charactersInLine = 0;
lineCount++;
wordCount++;
}
}
谢谢你的时间!