gpt4 book ai didi

c - 如何使用 C 解析文本文件并获取所有整数

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

我不是最好的 C 程序员,我正在尝试解析包含单词和整数的文本文件,并且我正在尝试将所有整数保存到不同的变量中。我无法跳过所有其他字符而只获取 int 的

我的文本文件如下所示:

任务[0] 0, 11, 27, 53, {2, 1, 1, 0, 0, 0, 0, 0, 0, 0}, 3
任务[1] 1, 22, 49, 92, {2, 1, 2, 0, 0, 0, 0, 0, 0, 0}, 3

int x = 0;
int t;
FILE *ptr_file;
int lines = 0;
int ch = 0;
ptr_file = fopen("tasks.txt", "r");
if (!ptr_file)
return;

int i, id, readyTime, WCET, deadline, numberOfResources;
int resources[10];

while(!feof(ptr_file))
{
ch = fgetc(ptr_file);
if(ch == '\n')
{
lines++;
}
}
while(x < lines)
{
//gets the whole task line
fscanf(ptr_file, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &t, &id, &readyTime, &WCET, &deadline, &resources[0], &resources[1], &resources[2], &resources[3], &resources[4], &resources[5], &resources[6], &resources[7], &resources[8], &resources[9], &numberOfResources);

printf("Task %d, id %d, readytime %d, WCET %d, deadline %d, resources (%d, %d, %d, %d, %d, %d, %d, %d, %d, %d) numResources %d\n", x, id, readyTime, WCET, deadline, resources[0], resources[1], resources[2], resources[3], resources[4], resources[5], resources[6], resources[7], resources[8], resources[9], numberOfResources);
++x;
}
fclose(ptr_file);

我认为我没有正确使用 fscanf,但无法让它工作。

任何帮助都会很棒

最佳答案

也许这有帮助:

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

int main(void)
{
const char *input = "Task[0] 0, 11, 27, 53, {2, 1, 1, 0, 0, 0, 0, 0, 0, 0}, 3";
const char *it = input;
char *next;

while( *it )
{
int value = strtol( it, &next, 10 );
if( it == next )
{
printf( "Text: '" );
while( *next && !isdigit(*next) ) {
putchar( *next );
next++;
}
printf( "'\n" );
}
else
{
printf( "Value: %d\n", value );
}
it = next;
}

return 0;
}

输出:

Text: 'Task['
Value: 0
Text: '] '
Value: 0
Text: ', '
Value: 11
Text: ', '
Value: 27
Text: ', '
Value: 53
Text: ', {'
Value: 2
Text: ', '
Value: 1
Text: ', '
Value: 1
Text: ', '
Value: 0
Text: ', '
Value: 0
Text: ', '
Value: 0
Text: ', '
Value: 0
Text: ', '
Value: 0
Text: ', '
Value: 0
Text: ', '
Value: 0
Text: '}, '
Value: 3

请注意,它不会处理负整数,但这很容易纠正。

关于c - 如何使用 C 解析文本文件并获取所有整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40646429/

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