c 写日志到c 写入txt文件件

共有 670 人关注过本帖
标题:[txt文件读写问题]不换行
等 级:论坛游民
帖 子:34
专家分:40
结帖率:85.71%
&&已结贴√
&&问题点数:20&&回复次数:9&&&
[txt文件读写问题]不换行
代码是这样的:
#include &stdio.h&
#include &string.h&
int main(void)
&&& char name[255];
&&& FILE *fp_read = fopen(&a.txt&, &r&);
&&& fgets(name, strlen(name)+1, fp_read);
&&& printf(&%s&,name);
&&& fgets(name, strlen(name)+1, fp_read);
&&& printf(&%s&,name);
&&& return (0);
a.txt文件里的内容(两个句子在不同行)是:
这是一个坏天气。
今天在下雨。
这样打印到屏幕上的句子被分到了两行。
我想让这两个句子在同一行显示。应该怎么做?
是应该在第一个printf打印出句子之后,让光标移回到上一行句子的结尾吗?
搜索更多相关主题的帖子:
等 级:论坛游民
帖 子:34
专家分:40
求大神指点
等 级:版主
威 望:268
帖 子:21771
专家分:41666
&&得分:20&
本來搞明白你上一個問題,自然能解決這個,可見是不求甚解。
授人以渔,不授人以鱼。
等 级:论坛游民
帖 子:34
专家分:40
哎,还是不明白,那该怎么做?请提示一下吧。
等 级:版主
威 望:268
帖 子:21771
专家分:41666
你從數據流中讀到'\n'不會不輸出的麼?
授人以渔,不授人以鱼。
等 级:版主
威 望:268
帖 子:21771
专家分:41666
本質上你就沒弄明白所謂的漢字就是雙字節字符,即由兩個字符拼合成的字符序列,所以儘管人家告訴你逐個字符讀入就能得到漢字串,你也不明白其實不過是不區別地把所有字符一股腦兒地一個一個讀進來。在逐個讀入字符流的過程中,就可以順便識別出各種字符,包括'\n',在需要時把它過濾掉,自然不會在輸出時有回車換行現象。換句話說,你也可以在任意地方加插字符'\n'使文本在輸出時折行——記事本的“自動折行”功能就是這樣實現的。
學編程先練基本招式,其實你都學過,但就是不注重原理。原理的重要性,再怎麼強調都不過份,基本功好,再懂原理,自然能做出各種複雜動作。千萬不要去練人家給出的套路,人家給了你代碼,不求甚解,永遠也不會變招,那就是死套路。這樣學習是不行的。
[ 本帖最后由 TonyDeng 于
20:10 编辑 ]
授人以渔,不授人以鱼。
等 级:版主
威 望:268
帖 子:21771
专家分:41666
逐個字節地處理漢字,是20多年前的老辦法了,現在的系統早已不是這樣。
授人以渔,不授人以鱼。
等 级:论坛游民
帖 子:34
专家分:40
哎,求教了。现在自学C语言当中,还请以后各位多多指点。不胜感激...
原理的重要性知道了,会多看看书补充自己的。
等 级:论坛游民
帖 子:34
专家分:40
回复 7楼 TonyDeng
原来是这么古老的办法了啊,我也弄了好久才想到这个办法来识别汉字的。
看来,在一开始就走弯路了。
哎.......C语言还是有太多的不懂了。
只好多看书了吧。
等 级:版主
威 望:268
帖 子:21771
专家分:41666
逐個字符處理的方法,叫ANSI字符編碼,現在的系統,多用Unicode(但也兼容ANSI),不用逐個字符分析前綴和後綴來辨別是否漢字的,特別是Unicode-16,把所有字符(包括傳統的英文ANSI字符)都編碼成雙字節,統一處理,簡便得多。在互聯網上,多用uft-8編碼,字符編碼是不定長的,從短到單字節,到長達4字節都有,比較麻煩。有各種各樣不同的編碼體系,所以你不要以為學會了一樣就可以。
授人以渔,不授人以鱼。
版权所有,并保留所有权利。
Powered by , Processed in 0.024784 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reservedc语言如何将printf产生的数据写到txt文件中_百度知道
c语言如何将printf产生的数据写到txt文件中
提问者采纳
fp=fopen(1.txt,w); //用 fopen 函数打开文件,第一个参数表示文件名,若不是当前// 路径请加 \\ 号,如 C:\\Windows\\System32,w 表示写(write)if (fp!=NULL) // 打开成功fprintf(fp,%d,1);// fp 文件流变量,%d写入格式,1 是写入的数据}程序执行后,只要你有权限写文件,那么将会在当前目录产生 1.txt用记事本打开,里面有一个 1像这样调用程序:aaa.exe 1.txt(重写)或aaa.exe 1.txt(追加)printf函数的主要功能是按一定的格式将数据显示在(输出到)屏幕上,将数据写入txt文档(此文档一定要存在)的较好方法是使用函数fput()或fputs(),前者是一次写入一个字符,后者是一次写入一个字符串。一般的写入过程是,先打开文件,然后操作文件,最后记住要关闭文件。主要代码如下:FILE *if((pf=fopen(你的txt文档名字,打开的模式))==NULL;//你的txt文档最好放在当前目录下,打开的模式有r(只读)、w(只写)、a(追加)等以及相应的组合。{//打开失败,出错处理}else{lseek(pf,nPos,SEEK_CUR);//将文件指针从当前位置移动到nPos处char szTxt[128];memset(szTxt,0,sizeof(szTxt));printf(szTxt,%d,12345);if((fputs(szTxt,pf))!=EOF){//完成写入}else{写入出错}}fclose(pf);打开stdio.h,你会发现……对,就是他:freopen函数,意为在原有FILE基础上打开一个标准文件。好了,我们就利用这样的便捷,把stdout这个程序启动时被设定的FILE map到一个标准文件,这样,printf()函数就立即输出到指定文件中。记住要用fclose关闭stdout。FILE * __cdecl freopen(const char *, const char *, FILE *);freopen就像fopen一样方便
其他类似问题
为您推荐:
printf的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁页面导航:
→ 正文内容 C#中把日志导出到txt文本
C#中把日志导出到txt文本的简单实例
这篇文章介绍了C#中把日志导出到txt文本的简单实例,有需要的朋友可以参考一下
代码如下:/// &summary&&&&&&&& /// 打日志&&&&&&& /// &/summary&&&&&&&& /// &param name="log"&&/param&
&&&&&&& //首先还是要using system.&&&& &&&&&&& public void Write(ArrayList log)&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&& //将文件保存在桌面,文件名称为当前时间.txt&&&&&&&&&&&&&&& FileStream fs = new &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& FileStream("C:\\Users\\ailin\\Desktop\\" + &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DateTime.Now.ToLongTimeString().Replace(":", "") + ".txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);&&&&&&&&&&&&&&&&&&& StreamWriter sw = new StreamWriter(fs, Encoding.Default);&&&&&&&&&&&&&&&&&&& foreach( string i in log)&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&&&&& sw.Write(i.ToString());&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&& DateTime dt1 = DateTime.N&&&&&&&&&&&&&&&&&&&& sw.WriteLine();&&&&&&&&&&&&&&&&&&&& sw.WriteLine("操作人:cxx");&&&&&&&&&&&&&&&&&&&& sw.WriteLine("日期:"+Convert.ToString(dt1));&&&&&&&&&&&&&&&&&&&& sw.Flush();&&&&&&&&&&&&&&&&&&&& sw.Close();&&&&&&&&&&& }
&&&&&&&&&&& //string sSaveExcelName =&&&&&&& //"C:\\" + DateTime.Now.ToShortDateString().Replace("-", "") + DateTime.Now.ToLongTimeString().Replace(":", "") + ".xls";&&&&&&&& public static ArrayList aChg_Slab_Len = new ArrayList();&&&&&&&&&&& private void button2_Click(object sender, EventArgs e)&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&& ArrayList cx = new ArrayList();&&&&&&&&&&&&&&&&&&& for (int i = 0; i & ss1.ActiveSheet.RowC i++)&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&& for (int j = 0; j & ss1.ActiveSheet.ColumnC j++)&&&&&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&&&& cx.Add(ss1.ActiveSheet.Cells[i, j].Text);&&&&&&&&&&&&&&&&&&&&&&&&&& cx.Add("& ");&&&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&&&&& cx.Add("\r\n");&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&& //执行导出日志的操作&&&&&&&&&&&&&&&&&&& Write(cx);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910Linux下C语言的文件(fputc,fgetc,fwrite,fread对文件读写操作)
//==================================fputc 向文件写入字符
#include &stdio.h&#include &stdlib.h&
main(){  FILE *  
  if((fp=fopen("test.txt","w"))==NULL)  {      printf("不能打开文件\n");  exit(0);  }
  while ((ch=getchar())!='\n')  fputc( ch, fp );
  fclose(fp);}
-------------小提示:
fp=fopen("test.txt","w") ,把"w"改为 "a" 可以创建文件并且追加写入内容
exit(0);& 需要包含 stdlib.h 头文件,才能使用
//============================================================fgetc 读取字符
#include &stdio.h&#include &stdlib.h&main( int argc, char *argv[] ){    FILE *  
  if((fp=fopen(argv[1],"r"))==NULL)  {    printf("不能打开文件\n");    exit(0);  }
  while ((ch=fgetc(fp))!=EOF)  putchar(ch);
  fclose(fp);}
文件结尾,通过判断 EOF
//==============================================================fwrite 的使用
使数组或结构体等类型可以进行一次性读写
#include &stdio.h&#include &stdlib.h&main(){  FILE *fp1;    struct student{  char name[10];    float score[2];  char addr[15];  }
  if((fp1=fopen("test.txt","wb"))==NULL)  {    printf("不能打开文件");    exit(0);  }    printf("请输入信息,姓名 年龄 分数1 分数2 地址:\n");  for( i=0;i&2;i++)  {    scanf("%s %d %f %f %s",stu.name,&stu.age,&stu.score[0],&stu.score[1], stu.addr);    fwrite(&stu,sizeof(stu),1,fp1);  }
  fclose(fp1);}
//===============================================================fread 的使用
#include &stdio.h&#include &stdlib.h&main(){  FILE *fp1;    struct student{    char name[10];        float score[2];    char addr[15];  }  if((fp1=fopen("test.txt","rb"))==NULL)  {    printf("不能打开文件");    exit(0);  }  printf("读取文件的内容如下:\n");  for (i=0;i&2;i++)  {    fread(&stu,sizeof(stu),1,fp1);    printf("%s %d %7.2f %7.2f %s\n",stu.name,stu.age,stu.score[0],stu.score[1],stu.addr);  }  fclose(fp1);}
//==========================================
fprintf , fscanf, putw , getw , rewind , fseek 函数
这些函数的话我就不演示了 ,
这些函数基本都一对来使用,例如 fputc 和 fgetc 一起来用
阅读(...) 评论()

我要回帖

更多关于 c 写入txt文件 的文章

 

随机推荐