
这里提供一种做法,空格也会被存进字符串里。
如果空格是不需要的,可用DeleteSpace(node[i].a)来删除空格。或者在选取字符时跳过空格即可。
#include <stdio.h>#define N 100
char a[N][N], b[N][N], c[N][N]
void DeleteSpace(char *p){
int i, j
for(i = 0 p[i] != '\0' i++)
if(p[i] == ' '){
for(j = i p[j] != '\0' j++)
p[j] = p[j+1]
i--
}
}
int main(){
char filename[100] = "in.csv"
FILE *file
file = fopen(filename, "r")
if(file == NULL){
puts("error")
return 1
}
char buf[N]
int i, j, cnt = 0
while((fgets(buf, N, file)) != NULL){
// puts(buf)
i = j = 0
for( buf[i] != ',' i++){
//if(buf[i] == ' ') continue //跳过空格,下面同理
a[cnt][j++] = buf[i]
}
a[cnt][j] = '\0'
j = 0
i++
for( buf[i] != '' i++)
b[cnt][j++] = buf[i]
b[cnt][j] = '\0'
j = 0
i++
for( buf[i] != '\n' i++)
c[cnt][j++] = buf[i]
c[cnt][j] = '\0'
cnt++
}
for(i = 0 i < cnt i++)
printf("#%s# #%s# #%s#\n", a[i], b[i], c[i])
return 0
}
像这种情况,有多种方法,最简单的方法是:
1.用"记事本"创建a.txt文件,保存在一个文件夹中,设保存在d:\之下
2.编写程序,并运行
#include <stdio.h>
int main( )
{
int a[10][4] /*假定不超过10行,每行一定有4个元素*/
int i,j
FILE *fp
/*打开文件*/
fp=fopen("d:\\a.txt","r") /*假设a.txt在d盘根目录下*/
if(!fp)exit(0)
for(j=0j<4j++) /*假定有j行*/
for(i=0i<4i++)
fscanf(fp,"%d",&a[j][i]) /*读一个数据*/
/* 关闭文件 */
fclose(fp)
/*显示运行结果*/
for(j=0j<4j++) /*假定有j行*/
{for(i=0i<4i++)
printf("%4d",a[j][i])
printf("\n")
}
return 0
}
以上演示了文本文件的读写 *** 作,供你参考.
在读写文件时,文件内部有一个"指针"会悄悄地变化(但你看不到),所以读一个数据后,再读可以得到下一个数据.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)