我在使用fscanf()
方面遇到了一些问题。我的主要目标是从输入文件中取出每个单词,并将它们按顺序放入char
的二维数组中,如下所示:
Ex:
words[0][] = The
words[1][] = Quick
words[2][] = Brown
words[3][] = Fox
...
我尝试了其他一些方法,例如fgetc()
,并使用嵌套的for
循环将每个字符放在他们的位置。当显然有更简化的方法时,这看起来有点矫枉过正。它的方式,在每次迭代时,wordList
包含要读取的下一个单词。我如何将wordList的当前值(在每次迭代中)按顺序分配到2d数组?
我当前(相关)的代码:
int main (int argc, char *argv[]) {
FILE *fPtr;
char words[200][50];
char *wordList;
if (fPtr = fopen(argv[2], "r")) { // If the file exists, open it for reading
while(fscanf(fPtr, "%49s", wordList) == 1) { // Read in strings from main file into wordList
// strcpy(words, wordList);
} else {
fprintf(stderr, "%s", "ERROR: File could not be opened.\n");
return 0;
}
fclose(fPtr);
return 0;
}
可以安全地假设要读取的最大字数小于200.可以假设每个字的长度小于50个字符。