一个程序看fputc和fgetc
生活随笔
收集整理的這篇文章主要介紹了
一个程序看fputc和fgetc
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在文章的開始,我們先來(lái)學(xué)習(xí)一下gatchar函數(shù)。
getchar:本意出入一個(gè)字符,只能輸入一個(gè)字符,這點(diǎn)很重要。
fputc:把字符寫到對(duì)應(yīng)的文件中,注意這里是字符。
fgetc:輸入一個(gè)字符,說(shuō)白了就是讀取一個(gè)字符
#include<stdio.h> #include<stdlib.h>int main() {char ch,ch1;FILE *fp;if((fp=fopen("a.txt","w"))=NULL){printf("error");exit(0);}ch=getchar();//用來(lái)接收最后的換行符ch=getchar();//讀取while(ch!='#'){fputc(ch,fp);putchar(ch);ch=getchar();//沒(méi)有這個(gè)將一直打印第一個(gè)字符}fclose(fp);fp=fopen("a.txt","r");while(!feof(fp)){ch1=fgetc(fp);putchar(ch1);}fclose(fp); }下面我來(lái)講一下我對(duì)程序的理解:首先讀入一個(gè)字符,并打印出這個(gè)字符,然后判斷,用fputs函數(shù)將一個(gè)字符輸入到文件中,然后在通過(guò)putchar輸出這個(gè)字符,然后在等待一次輸入。還有一個(gè)很有趣的情況:當(dāng)我們一次行輸入不指一個(gè)字符時(shí),又發(fā)生了什么情況呢?
當(dāng)輸入:abc時(shí),getchar函數(shù)只接受一個(gè)字符的輸入,我們用printf函數(shù)可以查看到效果,只打印出a,然后執(zhí)行后面的程序,再打印出a,b,c.其實(shí)是這樣的,abc值存在鍵盤的緩沖器中,敲一次回車只進(jìn)去了一個(gè)字符,進(jìn)入循環(huán)后再逐個(gè)讀取字符,然后在打印出。所以,你在輸入abc時(shí),按下回車馬上打印abc。
關(guān)于getchar那里的注釋解釋:首先接收的是第一個(gè)字符,如果沒(méi)有這段輸入代碼,則while一直循環(huán)(沒(méi)有遇到#啊),一直打印文件中的內(nèi)容,而文件只有剛輸入的第一個(gè)字符,則一直打印第一個(gè)字符。
總結(jié)
以上是生活随笔為你收集整理的一个程序看fputc和fgetc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 初识链表
- 下一篇: 再探文件输入和输出函数