A. c語言為何沒識別文件中字元串末尾的\0,直接賦了隨機數
有兩個問題要注意:一是s數組還沒有賦值,for語句卻用s[i]!='\0'來作結束控制,顯然不妥。二是文件中怎麼會有'\0'?'\0'是不可顯示字元,向文件寫入字元串時不寫入'\0',而是在字元串後加一個'
'或'\n'來區分的。而從文件讀字元串時,最後的'\0'是讀取函數加上去的。所以不可能從文件中讀到'\0'。
B. C語言文本結束標識問題
在C語言中,或更精確地說成C標准函式庫中表示文件結束符(end
of
file)。在while循環中以EOF作為文件結束標志,這種以EOF作為文件結束標志的文件,必須是文本文件。在文本文件中,數據都是以字元的ASCII代碼值的形式存放。我們知道,ASCII代碼值的范圍是0~255,不可能出現-1,因此可以用EOF作為文件結束標志。
C語言中,EOF常被作為文件結束的標志。還有很多文件處理函數處錯誤後的返回值也是EOF,因此常被用來判斷調用一個函數是否成功。
例如:
#include
<stdio.h>
int
main()
{
int
n;
int
array[25];
while
(scanf("%d",&n),n!=EOF)
{
for
(int
i=0;
i<n;
i++)
scanf("%d",array+i);
for
(i=0;
i<n;
i++)
printf
("%d
",array[i]);
}
return
0;
}
C. C語言刪除文件末尾字元的問題。
記事本讀取字元串的時候 最後是\r\n結尾 所以fseek 指向的是/r 這個字元 backspace之後
就只有原來的/n了 並且沒有刪除原來的最後我們需要刪除的那個字元
win下記事本 只有\r\n才能正確的換行 字元串只寫\n就會出現那個黑點
D. C語言如何判斷文本文檔的結束
C語言判斷文本文檔的結束的源代碼如下:
#include <iostream>
#include <fstream>
using namespace std;
#define FILENAME "stat.dat"
int main()
{
fstream _file;
_file.open(FILENAME,ios::in);
if(!_file)
{
cout<<FILENAME<<"沒有被創建";
}
else
{
cout<<FILENAME<<"已經結束";
}
return 0;
}
(4)c語言文件末尾是字元嗎擴展閱讀
C語言向文件寫入內容並讀取顯示的源代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define FILE_PATH "D:/demo.txt" // 文件路徑
int main(){
char name[20]; // 姓名
int age; // 年齡
int studNo; // 學號
float score; // 平均分
FILE *fp; // 文件指針
// 判斷文件是否能夠正確創建/打開
if( (fp=fopen(FILE_PATH,"wt+")) == NULL ){
perror(FILE_PATH);
exit(1);
}
E. C語言中說字元串結尾應該是字元'\n',但是看我在下面的代碼中結尾是字元'g',不是也可以嗎
「C語言中說字元串結尾應該是字元'
',」 這句話是不對的,字元串的默認結尾是『 』,例如:
chara[]=「abcd」,在內存中是這么存儲的:
系統會默認的將最後一位加上一個'