有关c 读取txt文件的问题
使用fopen,fscanf没问题,检查和调试你的程序的代码。
应该是你的循环控制没做好,在循环里加一些调试代码,打印一些关键信息,学会调试程序。
-----------------hi我说吧。
-----------------仔细看了一下你的代码,只有一点小疑问。
for(j = 0 ; j {for(i = 0 ; i {fscanf(fd,"%d",&d[i][j]); if ((d[i][j]{l=l+1;} }你确定 fscanf(fd,"%d",&d[i][j]);是对的而不是fscanf(fd,"%d",&d[j][i]);吗?不过这个疑问跟你遇到的问题无关。
代码看似没有问题,那么问题可能出在数据上,你的文件里面的数据可能不够4000*4000,所以造成循环溢出。
查看一下数据文件吧。
另外提个小建议if (fd==NULL){printf("读取文件失败");system("pause");exit(0);}else{……}这里,可以不用else,以便减少花括号的嵌套。
如if (fd==NULL){printf("读取文件失败");system("pause");exit(0);}……
c++空文本(txt)读取出来是什么值
一下代码可以读出 这个文本文档有多行,每行多少列!和内容,要把内容放数组,只要再做循环就可以了! Dim i%, k As Integer, t(), a() Private Sub Command1_Click() Text1.Text = "" Dim inputdata Open "c:3.txt" For Input As #1 Do While Not EOF(1) Line Input #1, inputdata i = i + 1 ReDim t(i) t(i) = Len(inputdata) '算出每行多少字符,就是多少列 ReDim a(i, t(i)) a(i, t(i)) = inputdata '为了能把每个对应这里把每行的数据记录 Picture1.Print i; t(i); "("; a(i, t(i)); ")" Text1.Text = Text1.Text + inputdata + vbCrLf Loop Close #1 End Sub
c语言读取txt文档并将内容存放到表里
一、大概了解 c语言文件的操作分 读 和 写,读指的是:将文件内的信息写入到程序,可以理解为 硬盘信息->内存信息 的转化方式 而写指的是:将程序中的信息写入到文件,如txt文件。
是一种 内存信息->硬盘信息 的转化方式 对于你的问题,则是 读 的方式,二、具体使用方法 在C语言中,读文件的需要用到文件类型 FILE;通常的使用方式为: FILE *fp;定义一个文件指针;用指针打开文件的函数为:fp = fopen("mm.txt","w"));w可以是r,对应两种使用方式:w(write),r(read) 如果是将信息写入文件,则是w。
若是将文件信息写入程序,则是r。
在r的方式时,即读文件的方式时,若打开的文件不存在,则会打开失败。
在w的方式时。
即在写进文件的,比如你讲信息写入“cc.mm”这么一个文件里时,程序发现并没“cc.mm”那么一个文件,则会自动创建一个新文件 命名为“cc.mm”并将信息写入其中。
注意!后缀名 .xx、.tet、.什么都无所谓,都默认按txt的方式写入。
文件的读取函数为:fwrite(p, sizeof(XX), 1, fp); 即将文件内的信息,按XX大小的内存写入指针P当中。
通过函数调用之后,fp即文件指针自动后移。
文件写入的函数为:fprintf(fp,"%x",p );即将p指针里的信息,按照%x的格式写入文件中。
在最后一定要记得使用fclose(fp)!!!!关闭文件指针 的时候我给你一段代码加深理解#include #include #define NEW (TX *)malloc(sizeof(TX)) typedef struct tongxunlu //定义的一个通讯录的结构体 { char number[10]; //号码 char name[20]; //姓名 int old; //年龄 char address[20]; //地址 char phone[12]; //电话 struct tongxunlu *next;//链表 }TX; int main () { FILE *fp; // 文件指针fp TX *p; int i,n; // i,n控制循环 if((fp = fopen("学生信息.txt","w")) == NULL ) // 打开文件 { printf(" 人品 不够!!启动失败!!!\n"); exit(0); } printf("输入人数:"); // 键盘输入人数n scanf("%d",&n); fprintf(fp,"%d",n); // 将人数n写入文件 fprintf(fp,"\n"); p = NEW; // 开辟一个新内存,并让指针p指向它 printf(" 输入档案号、姓名、年龄、籍贯、联系电话\n"); for(i = 0; n > i ; i++) // 反复用同一个节点进行n次循环 { scanf("%s",&p -> number); // 键盘将数据写入该节点 scanf("%s",&p -> name); scanf("%d",&p -> old); scanf("%s",&p -> address); scanf("%s",&p -> phone); fprintf(fp,"%s ",p -> number); // 将该节点内的数据写入文件 fprintf(fp,"%s ",p -> name); fprintf(fp,"%d ",p -> old); fprintf(fp,"%s ",p -> address); fprintf(fp,"%s ",p -> phone); fprintf(fp,"\n"); } free(p); // 释放p内存 fclose(fp); // 关闭文件 printf("\n\n数据输入完成\n"); }
C语言如何读取TXT全部字符?
你可以使用输入输出重定向来将TXT文本中的字符内容导入程序中,或者使用标准C库函数:fopen()和fgetc();先使用fopen()函数打开TXT文本文件,然后使用fgetc读取文本文件中的字符。
读取全部文本中全部字符可以使用一个while循环加判断是否读取到文件结尾来实现:char ch;while((ch= fgetc(fp)) != EOF)这样当读取到文件结尾时,while循环就会终止。
C语言如何读取C:\a.txt中的数据,并赋值到变量?
如果不加路径,比如一个main.c文件的代码是这样的:if((fp=fopen("源程序.txt","r"))==NULL) printf("源程序无法打开!\n");如果你是在调试时候运行的, 那么"源程序.txt"就是在main.c同一个文件夹下.如果是直接运行程序,则"源程序.txt"是在main.exe同一个文件夹下.注意,如果指定文件的绝对路径,比如 d:\源程序.txt ,在代码中应该写成这样: d:\\源程序.txt 还有疑问请追问.....
C语言从txt中读取汉字到数组
汉字在ANSI/GBK或UCS-2/UTF-16编码中占2个字节,在UTF-8中占3个字节,在UCS-4/UTF-32中占4个字节。
如果确定编码(默认一般是ANSI/GBK)的话,就可以判断出一个汉字的大小。
由于fgetc只能处理单字节数据,且char无法存放超过一个字节,因此应该把汉字(无论是几个)作为数组处理。
具体可以用fread(s,n,1,fp);来从文件fp读入指定的n字节到字符串s中。
也可以用fscanf配合%s使用。
读入一行的话,可以考虑fgets。
对于宽字符而言,可以用wchar_t代替char,用fgetwc代替fgetc。
不过wchar_t和对应函数的行为是平台相关的,一般也不适合ANSI/GBK兼容窄字符串处理。
====[原创回答团]
怎么用C语言读取 TXT文件中的字符串
可以使用输入输出重定向来将TXT文本中的字符内容导入程序中,或者使用标准C库函数:fopen()和fgetc();先使用fopen()函数打开TXT文本文件,然后使用fgetc读取文本文件中的字符。
读取全部文本中全部字符可以使用一个while循环加判断是否读取到文件结尾来实现:char ch;while((ch= fgetc(fp)) != EOF)这样当读取到文件结尾时,while循环就会终止。
C语文编写编译如下:#include #include #include #define MAXLINE 100000#define BUFLEN 1024int main(){FILE *file;char buf[BUFLEN];int len=0,i=0;char *array[MAXLINE];file=fopen("test.txt","r");//打开TXST.TxT文件if(!file)return -1;while(fgets(buf,BUFLEN,file))//读取TXT中字符{ len=strlen(buf); array[i]=(char*)malloc(len+1); if(!array[i])break; strcpy(array[i++],buf);}fclose(file);i--;while(i>=0&&array[i]){ printf("%s\n",array[i]);//打印test文档的字符 free(array[i--]);}}...
用C语言编写一个程序,读取文本文档1.txt
刚写的:#include#include#define N 100#includeint main(){FILE *fp;int i,j=0,k;char s[N][10],temp[10];if((fp=fopen("d:\\1.txt","r"))==NULL){printf("Source file can\'t be opened!\n");system("pause>nul");exit(0);}for(i=0;!feof(fp);i++)fscanf(fp,"%s",s[i]);k=i;for(i=0;i{for(j=i+1;jif(s[i][0]>s[j][0]){strcpy(temp,s[i]);strcpy(s[i],s[j]);strcpy(s[j],temp);}}for(i=0;i}如果1.txt中的数据如下:235456135akgfjsfgfleordkfdeoeor459789324689fgfgh8795fgiotdkfjd运行程序后的结果如下:1352353244594566897898795akgfjsdkfddkfjdeoreoeorfgflfgiotfgfghPress any key to continue...
转载请注明出处51数据库 » c 将txt读取到dword