我的程序if((fp=fopen("xinxi.txt","ab"))==NULL) //文件为空则退出
{
printf("cannot open this fifl\n");
exit(0);
}
fprintf(fp,"%s,%s,%f",clients[number].xingming,clients[number].mima,clients[number].zongjine);
在 fprintf那加\n在txt文件里就看到一个乱码而不是换行
球高手帮忙
Cè¯è¨åæ件æ¯å¯ä»¥åå
¥æ¢è¡çï¼ä¸è¿éè¦ä½¿ç¨éé
符'\n'.
设å®æå¼æ件çæé为fp,é£ä¹åæ件ä¸åå ¥æ¢è¡å¯ä»¥ç¨å¦ä¸å ç§åæ³ï¼
1 éè¿fputcå½æ°ï¼
fputcå½æ°å¯ä»¥åå ¥ä¸ä¸ªå符ï¼æ以å¯ä»¥éè¿
fputc('\n', fp);
çæ¹å¼åå ¥ä¸ä¸ªæ¢è¡ç¬¦ã
2 éè¿fprintfå½æ°ï¼
åéè¿æå°å½æ°printfè¾åºä¸ä¸ªæ¢è¡ç±»ä¼¼ï¼å¯ä»¥
fprintf(fp, "\n");
3 éè¿fputså½æ°ï¼
fputsåè½æ¯åå ¥ä¸è¡å符串并æ¢è¡ãè¿éåªéè¦å®çæ¢è¡åè½ï¼æ以åå ¥ä¸ä¸ªé¿åº¦ä¸º0çå符串就å¯ä»¥äºï¼æ³¨æä¸æ¯ç©ºä¸²NULLã
fputs("", fp);
4 éè¿fwriteå½æ°ï¼
fwriteæ¯åä¸åæ°æ®çï¼ç¨æ¥åä¸ä¸ªå符ç论ä¸å¯è¡ï¼ä¸è¿æ¯å¤§æå°ç¨äºã
char c = '\n';
fwrite(&c, 1,1,fp);
以ä¸åç§æ¹æ³é½å¯ä»¥åæ件åå ¥æ¢è¡ç¬¦ã
设å®æå¼æ件çæé为fp,é£ä¹åæ件ä¸åå ¥æ¢è¡å¯ä»¥ç¨å¦ä¸å ç§åæ³ï¼
1 éè¿fputcå½æ°ï¼
fputcå½æ°å¯ä»¥åå ¥ä¸ä¸ªå符ï¼æ以å¯ä»¥éè¿
fputc('\n', fp);
çæ¹å¼åå ¥ä¸ä¸ªæ¢è¡ç¬¦ã
2 éè¿fprintfå½æ°ï¼
åéè¿æå°å½æ°printfè¾åºä¸ä¸ªæ¢è¡ç±»ä¼¼ï¼å¯ä»¥
fprintf(fp, "\n");
3 éè¿fputså½æ°ï¼
fputsåè½æ¯åå ¥ä¸è¡å符串并æ¢è¡ãè¿éåªéè¦å®çæ¢è¡åè½ï¼æ以åå ¥ä¸ä¸ªé¿åº¦ä¸º0çå符串就å¯ä»¥äºï¼æ³¨æä¸æ¯ç©ºä¸²NULLã
fputs("", fp);
4 éè¿fwriteå½æ°ï¼
fwriteæ¯åä¸åæ°æ®çï¼ç¨æ¥åä¸ä¸ªå符ç论ä¸å¯è¡ï¼ä¸è¿æ¯å¤§æå°ç¨äºã
char c = '\n';
fwrite(&c, 1,1,fp);
以ä¸åç§æ¹æ³é½å¯ä»¥åæ件åå ¥æ¢è¡ç¬¦ã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-05-23
1、你的程序是错误的,所以不能写入换行。
原因如下:用"ab" 打开是二进制文件,要用 fwrite 写。
2、修改建议:写文本文的话用 "w" 就可以了。fprintf(fp,"%s,%s,%f\n",....)。用 \n 换行。
原因如下:用"ab" 打开是二进制文件,要用 fwrite 写。
2、修改建议:写文本文的话用 "w" 就可以了。fprintf(fp,"%s,%s,%f\n",....)。用 \n 换行。
第2个回答 推荐于2017-09-25
用"ab" 打开是二进制文件。要用 fwrite 写。
写文本文件 用 "w" 就可以了。
fprintf(fp,"%s,%s,%f\n",....
用 \n 换行本回答被提问者采纳
写文本文件 用 "w" 就可以了。
fprintf(fp,"%s,%s,%f\n",....
用 \n 换行本回答被提问者采纳
第3个回答 2009-06-03
如果你输出文件是文本的建议fopen使用参数"at",那么函数会帮你自动补完换行符。
如果使用"ab"说明是Binary,那么Windows的换行必须是0x0D 0x0A 组成"\r\n"
如果使用"ab"说明是Binary,那么Windows的换行必须是0x0D 0x0A 组成"\r\n"
第4个回答 2009-06-03
试试\r\n