【发布时间】:2014-11-02 08:10:17
【问题描述】:
我需要一些帮助来解决我遇到的一些问题。我是 C 语言的新手,我需要帮助尝试读取带有分隔符的数据字符串并将它们保存到结构中。我该怎么做呢?
字符串的格式如下,格式为 A:B:C:D:E
示例
0002:0001:0001:0042:ASD
0001:0011:0010:0023:DDD
当字符串被读取时,它同时被验证并存储到结构中。
A的值应该在1-100之间
B的值应该在1-100之间
C的值应该在1-10之间
D的值应该在1-50之间
E 的值应在 25 个字符以内。
谁能指导我如何编写代码?如果这听起来很简单,我很抱歉,但我真的很陌生。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char ch, file_name[25];
FILE *fp;
char * aline;
printf("Enter the name of file you wish to see\n");
gets(file_name);
fp = fopen(file_name,"r"); // read mode
if( fp == NULL )
{
perror("Error while opening the file.\n");
exit(EXIT_FAILURE);
}
printf("The contents of %s file are :\n", file_name);
while( ( ch = fgetc(fp) ) != EOF ){
aline=(strtok,":");
while (aline != NULL)
{
printf ("%s\n",aline);
aline = strtok (NULL, " :");
}}
fclose(fp);
return 0;
}
【问题讨论】:
-
您可以使用
strtok()。您应该发布您的代码,向我们展示您尝试过的内容。您在哪里遇到问题。 -
我什至不知道如何开始。 ): @1336087
-
使用
fgets读取一行,strtok标记您的字符串,strtol转换每个标记。顺便说一句,这是你的作业吗? -
@1336087 我不应该/不允许问作业。对不起,我不知道
标签: c pointers struct printf delimiter