本實例實現從鍵盤逐個讀取字符,並將其寫入用戶指定的文件中,直到輸入 # 為止。
關鍵步驟:
gets() 讀取(同樣建議改用 fgets())。getchar() 吸收殘留的換行符,然後進入循環:每次調用 getchar() 讀取一字符,若為 # 則跳出,否則用 fputc() 寫入文件。// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp = NULL;
char filename[25];
char ch;
printf("輸入你要保存到的文件的名稱:\n");
gets(filename);
if ((fp = fopen(filename, "w")) == NULL) {
printf("error: cannot open file!\n");
exit(0);
}
printf("現在你可以輸入你要保存的一些字符,以#結束:\n");
getchar(); // 吸收上一個換行符
while ((ch = getchar()) != '#') {
fputc(ch, fp);
}
fclose(fp);
system("pause");
return 0;
}
輸入你要保存到的文件的名稱:
test.txt
現在你可以輸入你要保存的一些字符,以#結束:
www.runoob.com
#
執行完畢後,test.txt 將包含 www.runoob.com。
gets() 替換為 fgets(filename, sizeof(filename), stdin) 並去除尾部換行符。