Конвертировать char в int с пустым пространством в C - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть переменная типа char, например a = '123' или b = '\ t123'.Итак, как преобразовать их в целое число?Моя проблема заключается в том, что текстовый файл формы чтения содержит несколько строк символов типа a и b.Я хочу преобразовать их и сохранить в массив.Вот мой код:

int main(){
FILE *file_pid;
int i = 0;
int number[100];
char line[20];
    file_pid = fopen("pid.txt","r");
    while(fgets(line, sizeof line, file_pid) != NULL){
         number[i] = atoi(line);
         i++;
    } 
}

Отредактировано: я решил свою проблему.Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Вы можете использовать функцию atoi() для непосредственного преобразования строки в целое число. Функция библиотеки C:

int atoi(const char *str) преобразует строковый аргумент str в целое число. Эта функция возвращает преобразованное целое число в виде значения типа int. Если действительное преобразование не может быть выполнено, возвращается ноль. хорошая часть в том, что он игнорирует пробелы.

вы можете не захотеть хранить константу из нескольких символов в символьной переменной. Вместо этого используйте массив символов:

char c[] = " 123"; printf("%d\n", atoi(c));

0 голосов
/ 10 апреля 2019

C Ссылочная функция atoi () Преобразовать строку в целое число

Эта функция stdlib преобразует строку в целое число.И он будет игнорировать пробелы.

Использование atoi ():

int atoi ( const char * str );

Пример кода :: -

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

int main(){
    int i;
    char number [255];
    printf("Enter a number: ");
    fgets(number, 255, stdin);
    i = atoi(number);
    printf("You Entered %d", i);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...