自学新手小白求助,编了个简单代码不知道哪里错了

D_CHRIS 2015-09-01 04:40:51
想编个小程序处理txt文档的,功能是检测有多少段,想知道为什么不能用/n表示一段。测试用的文档确实是有分段的,但是测试结果是0,为什么呢
...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
D_CHRIS 2015-09-01
  • 打赏
  • 举报
回复
引用 4 楼 赵4老师的回复:
每行的后面都有'\n',区别是在新的一段开头有空格,我觉得。
可是我程序里就是\n啊,有没有什么其他能表示段的方法呢,因为万一我英文文档每段前面没有空格呢?
赵4老师 2015-09-01
  • 打赏
  • 举报
回复
每行的后面都有'\n',区别是在新的一段开头有空格,我觉得。
  • 打赏
  • 举报
回复
引用 1 楼 D_CHRIS 的回复:
这是程序 #include <stdio.h> #include <stdlib.h> void main() { FILE *fp1, *fp2; /*定义两个指向FILE类型结构体的指针变量*/ char filename1[50],filename2[50],ch; long paragraph; paragraph=0; printf("Enter file name \n"); scanf("%s", filename1); /*输入要进行统计的文件的路径及名称*/ if((fp1=fopen(filename1, "r"))==NULL) { printf("cannot open file.\n"); exit(1); } printf ( "Enter file name for write data:\n"); scanf("%s",filename2); /*输入文件名即将统计结果放到那个文件中*/ if((fp2=fopen(filename2, "w"))==NULL) /*已可写方式要存放统计结果的文件*/ { printf("cannot open file \n"); exit(1); } while((ch=fgetc(fp1))!=EOF) /*知道文件内容结束处停止while循环*/ ch=fgetc(fp1); if(ch=='\n') paragraph++; fclose(fp1); fprintf(fp2,"paragraph:%ld \n", paragraph); /*将统计结果写入fp指向的磁盘文件中*/ }
windows中的文件换行符是\r\n
赵4老师 2015-09-01
  • 打赏
  • 举报
回复
\n 和 /n 不是一回事! 推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。 不要把 fopen("...","...");fscanf,fprintf,fgets,fgetc,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fseek,ftell,fread,fwrite,fgetc,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待 弄混了
D_CHRIS 2015-09-01
  • 打赏
  • 举报
回复
这是程序
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp1, *fp2; /*定义两个指向FILE类型结构体的指针变量*/
char filename1[50],filename2[50],ch;
long paragraph;
paragraph=0;
printf("Enter file name \n");
scanf("%s", filename1); /*输入要进行统计的文件的路径及名称*/
if((fp1=fopen(filename1, "r"))==NULL)
{
printf("cannot open file.\n");
exit(1);
}
printf ( "Enter file name for write data:\n");
scanf("%s",filename2); /*输入文件名即将统计结果放到那个文件中*/
if((fp2=fopen(filename2, "w"))==NULL) /*已可写方式要存放统计结果的文件*/
{
printf("cannot open file \n");
exit(1);
}
while((ch=fgetc(fp1))!=EOF) /*知道文件内容结束处停止while循环*/
ch=fgetc(fp1);
if(ch=='\n')
paragraph++;
fclose(fp1);
fprintf(fp2,"paragraph:%ld \n", paragraph); /*将统计结果写入fp指向的磁盘文件中*/

}

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧