Форум программистов, компьютерный форум CyberForum.ru

Некорректная работа функции fscanf - C++

Восстановить пароль Регистрация
 
HERETIC
 Аватар для HERETIC
88 / 88 / 3
Регистрация: 10.10.2008
Сообщений: 607
Завершенные тесты: 1
13.05.2014, 22:41     Некорректная работа функции fscanf #1
Пишу прогу. Нужно считать из файла данные. Читаю при помощи fscanf. В итоге прога вроде работает, а вот в переменной куда считываю оказывается белиберда. Подскажите мою ошибку?
Текст проги:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include<iostream>
#include<math.h>
#include<conio.h>
 
using namespace std;
 
int main()
{
   setlocale(LC_ALL, "Rus");
   FILE* SOUR;
   if((SOUR = fopen("SOURCE_DOS.TXT", "rt")) == NULL)
      printf("Не удается открыть файл.");
   char T[900];
 
   fscanf (SOUR, "%474c", &T);
   fprintf(stdout, "%c", T); // для проверки
}
Это только выборка из проги - тот кусок который не работает. Файл SOURCE_DOS.TXT во вложении. Помогите срочно нужна помощь.
Вложения
Тип файла: txt SOURCE_DOS.TXT (1.0 Кб, 3 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2014, 22:41     Некорректная работа функции fscanf
Посмотрите здесь:

Аналог функции fscanf (C++) C++
Некорректная работа цикла for. C++
Некорректная работа компилятора C++
C++ Некорректная работа rand()
C++ Шаблон функции. Некорректная работа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,618
Записей в блоге: 1
13.05.2014, 23:18     Некорректная работа функции fscanf #2
Попробуй так:
C++
1
2
  fscanf (SOUR, "%s", T);
  fprintf(stdout, "%s", T); // для проверки
HERETIC
 Аватар для HERETIC
88 / 88 / 3
Регистрация: 10.10.2008
Сообщений: 607
Завершенные тесты: 1
13.05.2014, 23:49  [ТС]     Некорректная работа функции fscanf #3
Так вроде бы работает, но считывает только 78 символов. Не доганяю, fscanf считывает только до конца строки что ли????. А мне то нужно грубо говоря считать всю "шапку" из файла, а это 474 символа.
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,618
Записей в блоге: 1
13.05.2014, 23:58     Некорректная работа функции fscanf #4
можно так:
C++
1
2
3
fscanf (SOUR, "%474c", T);
   T[474]=0;
   fprintf(stdout, "%s", T); // для проверки
но это извращение
HERETIC
 Аватар для HERETIC
88 / 88 / 3
Регистрация: 10.10.2008
Сообщений: 607
Завершенные тесты: 1
14.05.2014, 00:06  [ТС]     Некорректная работа функции fscanf #5
Цитата Сообщение от zer0mail Посмотреть сообщение
можно так:

C++
1
2
3
fscanf (SOUR, "%474c", T);
 T[474]=0;
 fprintf(stdout, "%s", T); // для проверки
Так код работает. Но вот почему мой код не работает. В чем ошибка-то. Что-то видимо я не понимаю.
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,618
Записей в блоге: 1
14.05.2014, 00:14     Некорректная работа функции fscanf #6
В буфер данные читаются правильно, а при выводе по "%c" выводится младший байт адреса буфера Т (он передается в параметр функции).
HERETIC
 Аватар для HERETIC
88 / 88 / 3
Регистрация: 10.10.2008
Сообщений: 607
Завершенные тесты: 1
14.05.2014, 00:19  [ТС]     Некорректная работа функции fscanf #7
А если я напишу так:
C++
1
fprintf(stdout, "%474c", T);
то тоже получиться на выходе фигня.
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,618
Записей в блоге: 1
14.05.2014, 00:33     Некорректная работа функции fscanf #8
Все равно выведется младший байт адреса буфера, только перед ним будет 473 пробела.
HERETIC
 Аватар для HERETIC
88 / 88 / 3
Регистрация: 10.10.2008
Сообщений: 607
Завершенные тесты: 1
14.05.2014, 00:37  [ТС]     Некорректная работа функции fscanf #9
Ясно спасибо за помощь. Я кстати отправил сообщение в личку. Может поможешь?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2014, 00:41     Некорректная работа функции fscanf
Еще ссылки по теме:

Некорректная работа функции pow C++
C++ Некорректная работа повторно вызываемой функции
C++ Некорректная работа сложения строки

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,618
Записей в блоге: 1
14.05.2014, 00:41     Некорректная работа функции fscanf #10
Я против личных обращений с просьбами о помощи.
Это форум - каждый сам решает, кому и как помогать. Кроме того, ответы могут быть полезны другим.
Yandex
Объявления
14.05.2014, 00:41     Некорректная работа функции fscanf
Ответ Создать тему
Опции темы

Текущее время: 23:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru