一、c語言fgetchar
c語言中,有三個函數可以用來讀取單個字元:fgetc()、fgetchar()和getc()。其中,fgetchar()和getc()實際上是用fgetc()函數實現的。
二、c語言fgetc和getc
fgetc()和getc()函數都可用於從文件中讀取字元,並以ASCII碼的形式返回該字元的值。使用方式也很簡單,示例代碼如下:
#include <stdio.h>
int main() {
FILE *fp;
char c;
fp = fopen("example.txt", "r");
while ((c = fgetc(fp)) != EOF) {
printf("%c", c);
}
fclose(fp);
return 0;
}
上述代碼中使用了fopen()函數打開一個文本文件,並使用fgetc()從該文件中讀取字元,最後使用fclose()關閉文件。需要注意的是,fgetc()函數只能讀取ASCII碼值為0到127之間的字元,不包括回車符(\r)和換行符(\n)。如果需要讀取換行符,則可以使用fgets()函數。
三、c語言fgetchar怎麼用
fgetchar()函數與fgetc()函數類似,可以從標準輸入中讀取一個字元。示例代碼如下:
#include <stdio.h>
int main() {
char c;
printf("請輸入一個字元:");
c = fgetchar();
printf("您輸入的字元是:%c\n", c);
return 0;
}
該示例代碼中,使用fgetchar()函數從標準輸入中讀取一個字元,並輸出該字元的值。需要注意的是,fgetchar()函數會自動將讀取到的字元和輸入流中的回車符一起丟棄,因此如果需要讀取換行符,則不能使用該函數。
四、c語言fgetc和fscanf
fscanf()函數也可以用來從文件中讀取字元,但是其與fgetc()函數有所不同。fscanf()函數可以將讀取到的字元轉化為指定的格式,並存儲在變數中。示例代碼如下:
#include <stdio.h>
int main() {
FILE *fp;
char c;
fp = fopen("example.txt", "r");
fscanf(fp, "%c", &c);
printf("讀取到的字元為:%c\n", c);
fclose(fp);
return 0;
}
上述代碼中,使用fscanf()函數從文件中讀取一個字元,並將其轉化為字元型,存儲在變數c中。需要注意的是,fscanf()函數會忽略空格和回車符等空白符號。
五、c語言fgetc會讀取回車
在使用fgetc()函數讀取文件時,需要注意其會讀取回車符(\r)以及換行符(\n)。因此,在處理文件時需要注意這一點。示例代碼如下:
#include <stdio.h>
int main() {
FILE *fp;
char c;
fp = fopen("example.txt", "r");
while ((c = fgetc(fp)) != EOF) {
if (c == '\n') {
printf("讀取到換行符\n");
} else {
printf("讀取到字元:%c\n", c);
}
}
fclose(fp);
return 0;
}
六、c語言fgets
使用fgets()函數可以從文件中讀取一行字元,包括換行符和回車符。示例代碼如下:
#include <stdio.h>
int main() {
FILE *fp;
char buffer[255];
fp = fopen("example.txt", "r");
fgets(buffer, 255, fp);
printf("讀取到的字元串為:%s\n", buffer);
fclose(fp);
return 0;
}
上述代碼中,使用fgets()函數從文件中讀取一行字元,並將其存儲在buffer數組中。需要注意的是,fgets()函數會自動在讀取到的字元串末尾添加一個空字元(’\0’)。
七、c語言fseek函數的用法
在使用fgetc()函數讀取文件時,可能需要將文件指針指向指定的位置。可以使用fseek()函數實現。示例代碼如下:
#include <stdio.h>
int main() {
FILE *fp;
char buffer[255];
fp = fopen("example.txt", "r");
fseek(fp, 5, SEEK_SET);
fgets(buffer, 255, fp);
printf("讀取到的字元串為:%s\n", buffer);
fclose(fp);
return 0;
}
上述代碼中,使用fseek()函數將文件指針指向第6個字元的位置,然後使用fgets()函數讀取文件中該位置後的一行字元。需要注意的是,fseek()函數的第二個參數指定的是偏移量,第三個參數指定偏移的起始位置。
八、c語言fscanf函數
使用fscanf()函數還可以從標準輸入或文件中讀取多個字元並按格式存儲到變數中。示例代碼如下:
#include <stdio.h>
int main() {
FILE *fp;
char c;
int i;
printf("請輸入一個字元和一個整數:");
scanf("%c %d", &c, &i);
printf("您輸入的字元和整數分別為:%c %d\n", c, i);
fp = fopen("example.txt", "r");
fscanf(fp, "%c %d", &c, &i);
printf("文件中讀取的字元和整數分別為:%c %d\n", c, i);
fclose(fp);
return 0;
}
上述代碼中,使用fscanf()函數從文件中讀取一個字元和一個整數,按照指定的格式存儲到變數中,然後輸出這兩個變數的值。
九、c語言fprintf
使用fprintf()函數可以將數據寫入到指定的文件中。示例代碼如下:
#include <stdio.h>
int main() {
FILE *fp;
char str[] = "Hello, World!";
fp = fopen("example.txt", "w");
fprintf(fp, "%s", str);
fclose(fp);
return 0;
}
上述代碼中,使用fprintf()函數將字元串"Hello, World!"寫入到指定的文件中。需要注意的是,fprintf()函數的第一個參數是文件指針,它指定數據輸出的目標文件。
十、c語言fseek
使用fseek()函數,可以將文件指針移動到指定的位置。示例代碼如下:
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("example.txt", "r");
fseek(fp, 5, SEEK_SET);
printf("文件指針指向第6個字元。\n");
fseek(fp, -2, SEEK_CUR);
printf("文件指針回退2個字元,當前指向第4個字元。\n");
fclose(fp);
return 0;
}
上述代碼中,使用fseek()函數將文件指針移動到第6個字元的位置,然後使用fseek()函數將文件指針回退2個字元,最後輸出文件指針的位置。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/308351.html
微信掃一掃
支付寶掃一掃