С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 09.09.2014
Сообщений: 8

Чтение из файла через fscanf

01.07.2016, 15:01. Показов 4373. Ответов 3

Студворк — интернет-сервис помощи студентам
Файл такого содержания
petrov 4305 5.000000
sidorov 4306 4.000000
пытаюсь записать в массив через функцию
C++
1
while (((fscanf(data, "%s", m_arrStudent[i].sFIO))&(fscanf(data, "%s", m_arrStudents[i].sNumZach))&(fscanf(data, "%f", &m_arrStudents[i].fAvgMark))) != EOF)
.
Проблема в том , что почему-то он игнорирует первый сканф и записывает в массив как
4305 4305 5.000000
4306 4306 4.000000
Может кто знает в чем проблема?Решение через ifstream,ofstream ,fgets и тому подобное тоже приветсвуется
Если что , то переменные типа CString
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.07.2016, 15:01
Ответы с готовыми решениями:

Чтение файла fscanf()
Доброго вечера! Если бы в файле были просто значения, в смысле : 10 10 50 90 30 30 50 10 60 29 10 22 и т.д. сделал так: (работает...

Некорректное чтение строк из файла (fscanf)
Доброго времени суток. Студенческая лаба, работа с файлами, CppBuilder6. Запись/чтение только через fprintf/fscanf. Записывает норм,...

Запись файла через одно приложение, а чтение через другое
Есть 2 консольные программы. 1-я пишет в файл "z" текст, 2-я читает с файла "z" этот текст и работает с ним. Подскажите как...

3
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
01.07.2016, 16:29
test.txt
qwer 1.2 3.4
asdf 5.6 7.8
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
#include <fstream>
#include <string>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
    std::string s;
    double x;
    double y;
 
    std::ifstream is("test.txt");
    while (!is.eof())
    {
        is >> s >> x >> y;
        std::cout << s << "\t" << x << "\t" << y << std::endl;
    }
    is.close();
 
    char buffer[256];
 
    FILE *f = fopen("test.txt", "r");
    while (fscanf(f, "%255s %lf %lf\n", &buffer, &x, &y) == 3)
    {
        std::cout << buffer << "\t" << x << "\t" << y << std::endl;
    }
    fclose(f);
 
    system("pause");
    return 0;
}
//---------------------------------------------------------------------------
вывод
qwer 1.2 3.4
asdf 5.6 7.8
qwer 1.2 3.4
asdf 5.6 7.8
Для продолжения нажмите любую клавишу . . .
0
0 / 0 / 0
Регистрация: 09.09.2014
Сообщений: 8
01.07.2016, 17:35  [ТС]
Код то рабочий.Но вся проблема в том , что эти данные должны записыватся в CString и где-то есть проблемы.Переделать в char* нельзя
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
01.07.2016, 17:50
Мученики, я думаю CString чем бы оно не было позволяет поместить в свои недра C-строку и значит ничего не мешает поместить в неё s.c_str() или buffer
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.07.2016, 17:50
Помогаю со студенческими работами здесь

Fscanf, получение данных из файла
Добрый день, именно в С не особо силён, поэтому есть дурацкий вопрос :) Есть текстовый файл в формате: value-type; ...

FSCANF и считывание слов из файла
Господа программисты и не только. У меня совсем простенький вопрос, но я уже не знаю, как самому на него ответить. Дело в том, что функция...

Чтение файла через while
Делаю лабу, но не знаю какое условие писать в while ибо обычное !feof(file) не подходит, выдаёт ошибку. void Read_Data_Base(Data_base ...

Ошибка открытия файла. fopen и fscanf
При вызове fscanf вылетает ошибка: First chance exception at $75BF1D4D. Exception class EAccessViolation with message 'Access violation...

Чтение файла через fstream
прочитать из файла матрицу и записать в новый файл её минимальный элемент в первой строке задана размерность матрицы файл: 10 8 ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru