gpt4 book ai didi

c - 用C读取txt文件的内容并遵循条件

转载 作者:行者123 更新时间:2023-11-30 17:42:30 25 4
gpt4 key购买 nike

我的 C 小程序有问题,我想读取一个文件并检查第二行中的字符串,并将该行的字符放入表中,但我必须遵循一些条件

这就是我的 txt 文件的样子:

NOMLOT:500

0001::16:27::47::68:79::3::::43:53::71:81::17:28:31::59:::85

我想显示这样的数组 http://i44.tinypic.com/35avekw.jpg

这是我的代码,但我知道这不是好方法

int main()
{
int x,i;
char buf[TAILLE];
char tab[60];
FILE* fichier = NULL;
fichier = fopen("LSBBZ.txt", "r");
if (fichier != NULL)
{
printf("%s\n", get_line(buf, TAILLE, fichier, 2));
for (i=0 ; i<60 ;i++)
{
if( buf[i] == ':' )
{
i =i+1;
if (buf[i] ==':')
{
tab[i] = 219 ;
}
else
tab[i] = buf[i];
}
else
tab[i] = buf[i];
}
}
printf("\n");
}

char *get_line(char *buf, int n, FILE *f, int line)
{
int i;
for (i=0 ;i<line;i++)
{
if(fgets(buf,n,f) == NULL)
return NULL;
buf[strlen(buf) - 1 ] = '\0';
}
return buf;
}

如果您可以建议任何方法或帮助我!谢谢

最佳答案

使用strsep的示例

#include <stdio.h>
#include <stdlib.h>

#if 1
#include <string.h>

//Not required if already exists.
char * strsep(char **sp, const char *sep)
{
char *p, *s;
if (sp == NULL || *sp == NULL || **sp == '\0') return(NULL);
s = *sp;
p = s + strcspn(s, sep);
if (*p != '\0') *p++ = '\0';
*sp = p;
return(s);
}
#endif

#define Nothing 219

int main(){
int data[3][9] = {0};
char input[] = "0001::16:27::47::68:79::3::::43:53::71:81::17:28:31::59:::85";
char *token, *sp = input;
int *ip = &data[0][0];
token=strsep(&sp, ":");////first drop
while(NULL != (token=strsep(&sp, ":"))){
*ip++ = (*token != '\0') ? atoi(token) : Nothing ;//Nothing is 219
}
int r, c;
for(r=0;r<3;++r){
printf("|");
for(c=0;c<9;++c){
int value = data[r][c];
if(value != Nothing)
printf("%2d", data[r][c]);
else
printf("%2s", "");
printf("|");
}
printf("\n");
}
return 0;
}

/* result
| |16|27| |47| |68|79| |
| 3| | | |43|53| |71|81|
| |17|28|31| |59| | |85|
*/

关于c - 用C读取txt文件的内容并遵循条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20531553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com