本文目錄一覽:
- 1、C語言怎麼把字符串用fprintf寫入文本文件?
- 2、C語言文件操作用fprintf()函數為什麼保存的文件前空一行
- 3、c語言文件讀寫問題,文件沒內容?程序是照着書上搬出來的,運行啥都沒問題就是生成的文件裡面看不到內容
- 4、求大神幫忙看看c語言編程哪裡出問題了,文件始終是空白,無法寫入。
- 5、C語言fprintf函數寫不進去數據是咋回事?
C語言怎麼把字符串用fprintf寫入文本文件?
把把字符串寫入文件,基本示例如下:
FILE *fp;
char s[]= “hello world!”;
char c = ‘\n’;
fp = fopen(“file.txt”,”a”);
fprintf(fp,”%s”,s); //字符串使用%s
fprintf(fp,”%c”,c); //字符使用%cfclose(fp);從文件讀取到字符串 char s1[30];fp=fopen(“file.txt”,”r”);fscanf(fp, “%[^\n]\n”, s1);printf(“%s\n”,s1);fclose(fp); 本來挺簡單的一件事,可是讓我頭疼了好幾個小時。
在前面寫了 fp = fopen(“file.txt”,”a”);
fprintf(fp,”%s”,s); //字符串使用%s
但是fclose(fp);這句被我寫在了return 0;之前,然後字符串死活寫不進文件裡面去。後來終於發現是因為使用了while(1)循環讀取端口數據,所以一直沒有執行fclose(fp);這句,才導致文件裡面一直是空的。所以fclose(fp);這句話不要忘記了哦~~ :)
C語言文件操作用fprintf()函數為什麼保存的文件前空一行
你在while循環前,fprintf(fp, “%d\n”, n);所以文件第一行的 1 應該是n的值,然後\n換了行,所以你的數據寫到了第二行
c語言文件讀寫問題,文件沒內容?程序是照着書上搬出來的,運行啥都沒問題就是生成的文件裡面看不到內容
代碼上幾個錯誤:
a)文件名的存儲空間只有10個字符,而你輸入的也是10個字符,字符串末尾要增加一個\0字符,所以你已經內存訪問越界了,文件名數組習慣定義的大小是MAX_PATH,也就是250字符左右
b) 你使用的是不帶文件路徑的文件名,這樣的文件名的具體位置依賴於”當前路徑“,而很多人對當前路徑的理解是錯誤的,它不是可執行文件所在位置,所以也許你看了不同位置的文件。你先試試輸入完整路徑再說
c)你在不停檢查fp !=NULL,注意,除非你主動設置fp=NULL否則一旦它有值無論文件後續是否被關閉,它都不是NULL,所以只有fopen後那一個fp!=NULL有意義,其他都是錯誤
現在很多書都是垃圾,所以書照搬不是好標註,還是要好好理解語言,不要過分相信書
求大神幫忙看看c語言編程哪裡出問題了,文件始終是空白,無法寫入。
這具體要看你的num和stu[]數組的情況了。還有,這程序寫的是二進制文件,而且文件沒有擴展名。這都是在查看文件時要注意到的。經驗證,這個程序是可以寫入文件的。
C語言fprintf函數寫不進去數據是咋回事?
這麼深的嵌套函數基本很難看懂的,所以首先你要簡化一下邏輯,避免這麼複雜的嵌套語句.一般來說,內嵌超過層時最多的,超過了就有問題
至於看問題,肉眼時看不出來的,因為誰也不知道你fprintf時實際寫入的東西是啥.有兩個核心的點
a) 在fprintf處加斷點,看看寫入的數據是否在數組範圍內,是否越界,寫入的數據是否合法
b) 檢查fprintf的返回值,看看是否報錯
絕大部分錯誤都不是看出來的,調試是程序員必備技能
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/181628.html