C语言读取TXT文件,忽略文件空格,把内容写入数组中应该怎么实现?
#include<stdio.h>#include<stdlib.h>#defineSIZE_view50structview_info{intid;charname[2...
#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 沈票线 展开
#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 沈票线 展开
2个回答
展开全部
#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];
int read() {
FILE *fp;
int n = 0;
if((fp = fopen("1.txt","rt")) == NULL) {
printf("不能打开数据文件!\n");
return 0;
}
while(fscanf(fp,"%u%s%d%s%s",&views[n].id,views[n].name,
&views[n].code,views[n].shortname,views[n].LName) == 5)
++n;
return n;
}
更多追问追答
追问
这样真的可以不读入空格?%s也是接受空格的啊
追答
空格被用来隔开数据,这是scanf()函数的特点,各个数据间有1个空格可多个空格都不会影响读入结果。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询