Вход на сайт
Чтение файла с помощью C
187
NEW 06.11.07 13:48
Такая проблема. Имеется файл в котором в столбик записаны числа (5-6 цифр подряд). Этот файл читается, каждый символ один за другим ( функцией getc() ), после чего каждое полученное число записывается в массив. Но дело в том, что вместо исходных чисел получаются совершенно левые! И почему, непонятно. Может есть какая-нибудь функция считывния строки из файла? И ккакая тут вообще может быть ошибка?
NEW 06.11.07 14:20
сложение (умножение, деление друг на друга и возведение в степень по rand()) символьных кодов, получаемых через getc(), вместо конкатенации символов и последующего преобразования в число? :D А вообще, без кода и примера входных данных вопрос, конечно, к телепатам.
В ответ на:
И ккакая тут вообще может быть ошибка?
И ккакая тут вообще может быть ошибка?
сложение (умножение, деление друг на друга и возведение в степень по rand()) символьных кодов, получаемых через getc(), вместо конкатенации символов и последующего преобразования в число? :D А вообще, без кода и примера входных данных вопрос, конечно, к телепатам.
NEW 06.11.07 14:43
в ответ digital.pilot 06.11.07 14:20
int ch, i;
FILE *in;
i = 0;
if((in = fopen (argv[1], "r")) != NULL)
{
while ((ch = getc(in)) != EOF)
{
x = ch;
i++;
}
fclose(in);
}
как я понимаю, эти символы уже как int из файла получаются, или их еще раз в число переводить надо? Я уже слегка запуталась.
FILE *in;
i = 0;
if((in = fopen (argv[1], "r")) != NULL)
{
while ((ch = getc(in)) != EOF)
{
x = ch;
i++;
}
fclose(in);
}
как я понимаю, эти символы уже как int из файла получаются, или их еще раз в число переводить надо? Я уже слегка запуталась.
NEW 06.11.07 17:26
fscanf - http://msdn2.microsoft.com/en-us/library/cb5kac8b(VS.80).aspx
в ответ tavy 06.11.07 13:48
В ответ на:
Может есть какая-нибудь функция считывния строки из файла?
Может есть какая-нибудь функция считывния строки из файла?
fscanf - http://msdn2.microsoft.com/en-us/library/cb5kac8b(VS.80).aspx
NEW 06.11.07 22:28
в ответ tavy 06.11.07 18:11
всё компилируется и работает, ток не то из файла выдает.
------
Угу... Наилучшим образом в терминах женской логики это было описано так
"Опять ОН (подразумевается - компьютер) неправильно считает"
и
"Наконец-то ОНА (подразумевается - моя программа) заработала"
Термин РАБОТАЕТ у программиста означает, что при любых корректных исходных
данных программа выдает корректный результат.
Я просто только кусок программы выдрала, там где собственно и проблема.
-----
Приведенный кусок кода читает в цикле символы из файла и присваивает их неопределенной переменной х.
Кроме этого он подсчитывает количество символов. Сделать на основании этого и приведенного описания задания заключение об том что именно неправильно у меня не получается - блок телепатии сдан в ремонт.
------
Угу... Наилучшим образом в терминах женской логики это было описано так
"Опять ОН (подразумевается - компьютер) неправильно считает"
и
"Наконец-то ОНА (подразумевается - моя программа) заработала"
Термин РАБОТАЕТ у программиста означает, что при любых корректных исходных
данных программа выдает корректный результат.
Я просто только кусок программы выдрала, там где собственно и проблема.
-----
Приведенный кусок кода читает в цикле символы из файла и присваивает их неопределенной переменной х.
Кроме этого он подсчитывает количество символов. Сделать на основании этого и приведенного описания задания заключение об том что именно неправильно у меня не получается - блок телепатии сдан в ремонт.
NEW 07.11.07 21:39
в ответ tavy 06.11.07 14:43
Давайте рассмотрим простой пример без всякой программы,
есть число-строка "123" - сто двадцать три как число. Если его читать по символам то получим "1", "2", "3" - один, два, три /*примечание для "мурки" одиночные кавычки на русском искать лень
*/ Для того что бы получилось первое число надо сделать следующее: 1*100+2*10+3*1. Думаю где то в этом районе и порылась проблема, как говорит мне мой блок предсказаний 
есть число-строка "123" - сто двадцать три как число. Если его читать по символам то получим "1", "2", "3" - один, два, три /*примечание для "мурки" одиночные кавычки на русском искать лень


NEW 07.11.07 21:54
/*примечание для "мурки" одиночные кавычки на русском искать лень*/
------
У Кошки они там же, где и двойные, на другом регистре... ну или ALT + '3' + '9' (на цифровой)
надо сделать следующее: 1*100+2*10+3*1.
------
(((1)*10^1 + 2)*10^1) + 3*10^0)
Вход видимо такой
1234
12345
2345
------
Почти. ВК & ПС (0x0A, 0x0D) потеряны. Будет существенно при обработке последнего значения...
------
У Кошки они там же, где и двойные, на другом регистре... ну или ALT + '3' + '9' (на цифровой)
надо сделать следующее: 1*100+2*10+3*1.
------
(((1)*10^1 + 2)*10^1) + 3*10^0)
Вход видимо такой
1234
12345
2345
------
Почти. ВК & ПС (0x0A, 0x0D) потеряны. Будет существенно при обработке последнего значения...
07.11.07 22:25
в ответ Murr 07.11.07 21:54
У Кошки они там же, где и двойные, на другом регистре... ну или ALT + '3' + '9' (на цифровой)
Так на англицком у меня так же. А вот где они на немецком лаптопе, с русской раскладкой клавы /и без "цифровой" части/ хрень знает.
Почти. ВК & ПС (0x0A, 0x0D) потеряны.
Не а не потеряны, они только в розовых очках видны
Так на англицком у меня так же. А вот где они на немецком лаптопе, с русской раскладкой клавы /и без "цифровой" части/ хрень знает.
Почти. ВК & ПС (0x0A, 0x0D) потеряны.
Не а не потеряны, они только в розовых очках видны
