簡體   English   中英

使用fscanf將文件中的單詞存儲在數組中

[英]Using fscanf to store words from file in an array

我正在嘗試編寫一些用於使用fscanf讀取文件的類作業的程序,然后將每個單詞存儲到一個數組中,每個元素中都包含一個單詞。 然后,我需要將數組的每個元素打印到控制台上的新行中。

getty.txt文件中的葛底斯堡地址帶有適當的間距,標點符號,並且是多行的。

我認為正在發生的事情是,整個文本都存儲在數組的第一個元素中,但是我還不能100%地確定,因為我仍在學習使用C進行調試和編寫。

關於我在做什么錯的任何建議都很好! 我目前似乎只得到最后一個字和一些額外的字符。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

void readFile();
void writeFile(char* buffer, int bufferlen);
FILE *fpread;
FILE *fpwrite;

char filebuffer[1000];
int filebufferlen = 0;


int main(int argc, char *argv[]) {
    fpwrite = fopen("csis.txt", "w");

    readFile();
    writeFile(filebuffer, filebufferlen);

    fclose(fpwrite);
    return 0;
}

void readFile() {
    char c;
    filebufferlen = 0;

    if(!(fpread = fopen("getty.txt", "r"))){
        printf("File %s could not be opened. \n", "getty.txt");
        fprintf(fpwrite,"File %s could not be opened. \n",     "getty.txt");
    exit(1);
}

    while (!feof(fpread)) {
        fscanf(fpread, "%s", filebuffer);
        filebufferlen++;
    }
}


void  writeFile(char* filebuffer, int filebufferlen) {
    for (int i = 0; i < filebufferlen; ++i){
            printf("%c\n", filebuffer[i]);
    }       
}

解決編譯問題后:

該代碼不包含任何代碼或數據聲明來包含“單詞”數組。 因此,自然而然地,除了最后一個單詞,什么都沒有保存,因此可以打印出來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM