как прочитать числа в С?

nomad

Простейшая прога: считывает с клавиатуры числа и записывает их в файл. Только в файле отображается какая-то абракадабра. Кто-нибудь знает как с этим бороться?

Flack_bfsp

Ты как числа в файл пишешь? Давай код.

Ivan8209

Прочитать printf(3) и fread(3).
---
"Потому что Аллах не ведёт людей неверных."

nomad

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *file;
char *str;
str = malloc(100);

printf("Distance\n");
scanf(str);
file = fopen("out.txt", "wt");
fprintf(file,"%s",str);
fclose(file);

return 0;
}
и выдает:ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННээээ‘ вместо любого введеного числа.

Ivan8209

Прочитать scanf(3).
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Elina74

Не слушай кохтпу, слушай меня, а лучше читай книжки.
scanf("%s", str);
и не забыть
free(str);
в конце программы перед return
Еще, на всякий случай надо привыкать проверять, выделяется ли тебе память malloc и получилось ли открыть файл fopen.

kruzer25

Причём тут кодировки?

nomad

to :
Спасибо! Она ЗАРАБОТАЛА!

Flack_bfsp

Так это же сразу было ясно, что ни при чём.

Elina74

str = malloc(100);
надо писать примерно так:
char* str=NULL;
str = (char*)malloc(100);
if(str==NULL){
printf("Eггог!");
return(1);
}

gopnik1994

так не надо писать
потому что не надо писать на Си

Ivan8209

>    printf("Eггог!");
>    return(1);
Для таких вещей уже давно существует err(3
но особо продвинутым насильникам этого, как обычно, неизвестно.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Elina74

Я:\моя папка>man err(3)
"man" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

gopnik1994

Я:\моя папка>man err(3)
"man" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
попробу так:
K:\Шовинист>man err(3)

Werdna

Я:\моя папка>man err(3)
"man" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Поставь нормальную операционку.

Elina74

Нахрена мне надо Операционная Система?
У меня гугль есть.

disna

думаю это был стеб над контрой
обычно он так пишет

alexkravchuk

> Еще, на всякий случай надо привыкать проверять, выделяется ли тебе память malloc и получилось ли открыть файл fopen.
С файлом +1, с памятью - не так важно. Куда важнее писать scanf("%99s", str хотя одно другому не мешает.

mira-bella

Есть маза почитать учебник или документацию, чтобы не писать такого: "scanf(str)" (где ты вообще видел такой чудесный вызов scanf? и чтобы писать адекватные заголовки и вопросы.
Например твоя прога конечно даже близко не "считывает с клавиатуры числа и записывает их в файл".
И уделять особое внимание тому какая память доступна, и как не вылазить за границы массива.
  Такое впечатление, что код скопирован из какого-то FAQ типа "как не надо писать на C".
 А текст вопроса с заголовком просто феноменален: заголовок никак не соответствует вопросу, который в свою очередь не соответствует приведенному коду.
 Мысленный эксперимент: представь, что видишь на форуме автомобилистов такой диалог (который без малейшего преувеличения аналогичен этому треду):

заголовок: система счисления на циферблате спидометра автомобиля
Простейшее путешествие: выезжаю из точки A и еду в точку B. Только за окном какая-то абракадабра. Как с этим бороться?

А подробнее?

Поворачиваю руль до упора вправо и, не закрыв левую дверь, поворачиваю зажигание и нажимаю газ на первой скорости. Слева на лобовом стекле выезжает стена и застывает с сильным толчком.


убей себя!
А теперь скажи какого ответа по-твоему заслуживает автор вопроса из мысленного эксперимента?
Разумному человеку сразу ясно, что крайне маловероятно (почти немыслимо чтобы автор всерьез искал помощи специалистов. Очень похоже на психолога, пишущего диплом, но либо не щарящего в C (не видевшего автомобилей соответственно либо исследующего реакцию на заведомо неадекватный вопрос.

Sebasten

Прочитать printf(3) и fread(3).

А зачем тебе эти функции, чтобы "ПРОЧИТАТЬ" ввод и "ЗАПИСАТЬ" в файл?

Ivan8209

Оценил.
---
...Я работаю...
P.S. Потому что fread(3) и fwrite(3) --- это одна и та же страница.

Sebasten


Это девушка.

Ivan8209

Считается, что девушки сюда не заглядывают.
---
...Я работаю антинаучным аферистом...

Elina74

кохтпа умеет считать, однако...
Оставить комментарий
Имя или ник:
Комментарий: