簡體   English   中英

C-使用文本文件

[英]C - working with Text Files

基本上,我正在用C編寫一個小程序(再次,這不是一項家庭作業,僅當我離開Uni時才做一些實驗:))。 我的目標是獲取一個包含許多單詞的文件,這些單詞全部用空格分隔,循環遍歷該文件,並且每當找到空格時,都將其替換為\\ n,從而創建大量單詞。

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
/*
 * 
*/
int main(int argc, char** argv) {

char myFile[100];
int i;
FILE *file;
while(argc--) {
    printf("%s\n", *argv++);
}

return 0;
}

到目前為止,我已經很基本了,接下來需要做的是拿出論點並將其放入myFile數組中,以便可以將其用作fopen,或者也許有另一種方法可以做到這一點?

除此之外,我的想法是通過fgets將一行讀取到一個數組中,逐個字符地遍歷char,搜索'',如果找到它,則替換\\ n,然后將該行重寫到文件中。 這聽起來明智,可行嗎?

問候,

謝謝!

最簡單的方法是以二進制模式打開文件

FILE *fpIn = fopen( argv[1], "rb" );

然后打開一個新文件進行寫入

FILE* fpOut =  fopen( "tmp.out", "wb" );

並使用fgetc從fpIn逐字節讀取,並使用fputc寫入新文件

在寫之前檢查字節是否為空格(使用isspace() ),而不是寫一個'\\ n'。

然后刪除原始文件並將tmp.out重命名為argv[1]

這幾乎完全是K&R練習1-12要求您執行的操作(如果要跳過文件指針,可以交替將輸入文件重定向到標准輸入)。 這是一個很好的鍛煉。

僅供參考,K&R解決方案的好資源: http : //clc-wiki.net/wiki/K&R2_solutions

暫無
暫無

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

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