C语言读取TXT文件,忽略文件空格,把内容写入数组中应该怎么实现

C语言 码拜 8年前 (2016-05-28) 3787次浏览
#include <stdio.h>
#include <stdlib.h>
#define SIZE_view 50
struct view_info    
{
	int id;
	char name[20];
	int code;
	char shortname[20];
	char LName[100];
}views[SIZE_view];
void read()
{
       FILE *fp;
       int i;
       fp=("1.txt",r);//接下来本人想不到好的方法
}

这里是1.txt的内容,里面假如用fscanf格式化会读入空格,有没有什么好的方法,能把空格忽略,然后直接把其他内容读入views[i].id等等数组里面
1   哈尔滨   101   HaEB    哈大线,京哈线
2   长春     102   CHCH   哈大线,京哈线
3   沈阳     103   SHY     哈大线,京哈线
4   大连     104   DL      哈大线,京哈线
5   天津     105   TJ       京哈线,京沪线
6   北京     106   BJ      京哈线,京沪线,京广线,京福线
7   呼和浩特 107   HHHT   京西线,徐西线
8   乌鲁木齐 108   WLMQ  乌兰线
9   西宁     109   XN     京西线,徐西线
10  兰州     110   LZ     京西线,徐西线,乌兰线
11  西安     111   XA     徐西线,京昆线
12  郑州     112   ZHENGZ 京昆线,京广线,徐西线
13  徐州     113   XZH    徐西线,京沪线,京福线
14  上海     114   SHH    京沪线,南沪线,京福线
15  武汉     115   WH     京广线
16  成都     117   CHD    京昆线
17  昆明     116   KM     京昆线,昆柳线,昆福线
18  贵阳     118   GY     昆柳线,南成线,昆福线
19  株洲     119   ZHUZH  南沪线,京九线,昆福线
20  南昌     120   NCH    京福线,昆福线
21  福州     121   FZH    京福线,昆福线
22  广州     122   GUANGZ 京广线
23  深圳     123   SHZH   京广线
24  柳州     124   LZH    昆柳线,南沪线,南成线
25  南宁     125   NN   南沪线,南成线
26  赤峰     126   CHF    京赤线
27  北票     127   BP     沈票线

解决方案

5

你一行行读到本人的buf中,然后从buf中过滤空格解析到你的结构体

35

这样可好:

#include <stdio.h>
#include <stdlib.h>
#define SIZE_view 50
struct view_info
{
	int id;
	char name[20];
	int code;
	char shortname[20];
	char LName[100];
}views[SIZE_view];
FILE *f;
char buf[256];
char *p;
int i, n;
int main(void)
{
	if (NULL == (f = fopen("1.txt", "r")))
	{
		fprintf(stderr, "Can not open file : 1.txt");
		return 1;
	}
	i = n = 0;
	while (1)
	{
		if (n == SIZE_view) break;
		if (NULL == fgets(buf, 256, f)) break;
		if ("\n" == buf[0]) continue;     //空行继续
		p = buf;
		sscanf(p, "%d%s%d%s%s", &views[n].id, views[n].name, &views[n].code, views[n].shortname, views[n].LName);
		n++;
	}
	do
	{
		printf("%d %s %d %s %s\n", views[i].id, views[i].name, views[i].code, views[i].shortname, views[i].LName);
		i++;
	} while (i < n);
	fclose(f);
	return 0;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C语言读取TXT文件,忽略文件空格,把内容写入数组中应该怎么实现
喜欢 (0)
[1034331897@qq.com]
分享 (0)