gpt4 book ai didi

c - 读取一个字符串并将其放入C中的(int)中

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

你能帮我吗?我在 txt 文件中有一个字符串 23;56;36.6;run。然后我正在读取该字符串以便将其用于某些工作:我想从字符串中获取该值,然后将它们与代码中的某些值进行比较,然后在控制台中输出结果。我认为,我应该使用 atoi() 函数将我的字符串转换为数字,为了挑选出来,我正在使用 strtok()。但是我应该如何正确地在循环 while 中记录我的标记,并且最后一个标记是 char 类型。我怎样才能完成这项工作?

代码:

void printInfo(int note)
{
int i;
FILE *out;
char str[250];
char sp[10]=";";
char *istr;


if ((out =fopen("test.txt","r"))==NULL)
printf("Error open, file\n");
else
{
for (i=0;i<note;i++)
{
fgets(str,250,out);
istr=strtok(str,sp);
while (istr != NULL)
{
printf("%d\n",atoi(istr));
istr=strtok(NULL,sp);
// I think, I need to create a variable for recording my values.
}
}
}
fclose(out);
}

最佳答案

我将使用 sscanf 将字符串转换为三个 float :

#include <stdio.h>  // sscanf
#include <stdlib.h> // EXIT_SUCCESS
#include <string.h> // memset

int main(void) {
const char *input = "23;56;36.6;run";
int i;
float numbers[3] = {0, 0, 0};
char buf[10];
int nElementsRead;

// init buf
memset(buf, 0, sizeof(buf));

// sscanf returns the number of read elements
// or EOF on error
nElementsRead = sscanf(input, "%f;%f;%f;%9s", &numbers[0], &numbers[1], &numbers[2], buf);

if (nElementsRead == 4) {
printf("Successfully read %d elements\n", nElementsRead);

for (i = 0; i < 3; ++i) {
printf("number[%d]: %f\n", i, numbers[i]);
}

printf("Buffer is: %s\n", buf);
} else {
printf("Something went wrong!");

return EXIT_FAILURE;
}

return EXIT_SUCCESS;
}

关于c - 读取一个字符串并将其放入C中的(int)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42166498/

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