基本上我应该制作一个复制Unix -wc命令的程序。标志-l,-w,-c和-L应该分别显示行中的#行,#行,#行和#行中的字符。我的代码C(读入文件)有什么问题-wc Unix命令程序
我在阅读文本文件时遇到了问题(首次在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++;
}
}
感谢您的时间!
作为一般性提示,您应该将'c'与''\ n''和''''比较,而不是数字值。它使事情变得更清晰。 – Peter