c - 读取 C 中的行并转换为 float

标签 c

我有一个文本文件,内容如下:

A 50
B 30
C 40

目前我的代码打开这个文件并读取每一行:

#include <stdio.h>

int main(void)
{
    int file = 0;

    {
        char* filename = "commands.txt";
        FILE* file;
        file = fopen(filename, "a+");
        char line[BUFSIZ];
        while(fgets(line, sizeof(line), file)) {
            char first_letter = line[0];
            printf("%c", first_letter);
            float number = line[2 : end] 
            printf("%f", number)

        }
    }
    return 0;
}

字符变量 first_letter 被设置为字母。我写了 2:end 但显然那行不通。我想将浮点变量“数字”设置为该行上的任何数字。它不一定是 2 位数字。

最佳答案

阅读后,使用 sscanf() 解析它:

  while(fgets(line, sizeof(line), file)) {
        char first_letter;
        float number;
        if( sscanf(line, "%c %f", &first_letter, &number) != 2)
        { /* handle error */ }
        printf("%c %f\n", first_letter, number);

    }

关于c - 读取 C 中的行并转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31940779/

相关文章:

c - 如何从 xmega 读取输入然后将其显示在 super 终端上

c - mulcross数据生成器运行错误: free():invalid next size

c - 如何找到stack smash的原因

c - 如何在 C 中使用 char* 循环遍历字符?

c - 确定微 Controller 开机后秒数的更好方法?

c - 使用免费的问题

c - Emacs、xterm、鼠标垫、C、Unicode 和 UTF-8 : Trying to make sense of it all

c - printf 是否总是在遇到换行符时刷新缓冲区?

c - 为什么当我推送数据时该程序会发生运行时崩溃?

c - 在指向 char 的指针数组中输入单词时出错