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

Считывание данных из файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ FPS режим http://www.cyberforum.ru/cpp-beginners/thread649370.html
Подскажите пожалуйста, можно ли переключиться в режим fps без использования директыксов и прочих библиотек? Что-то наподобии onEnterFrame в as.
C++ new, delete и указатель имеется примерно следующий код: int *p1; int *p2; int *ptr; ...... // выделение памяти под массив (где-то в начале) int *p1 = new int; ptr = p1 http://www.cyberforum.ru/cpp-beginners/thread649324.html
C++ Калькулятор
Всем привет) Начну с того что я не программист... Но вот решил просто освоить для себя. Выбрал язык Си. Купил книгу начал читать. Написал первую более менее законченную программу))) Калькулятор. v 0.2 #include <windows.h> #include <conio.h> #include <stdio.h>
Помощь в изучении C++
Ребят, вообщем сам процесс этот не представляю пока, вообщем хотелось бы заниматься геймдевом, но проблема в изучении( Не могли бы конкретную литературу предложить(бегаю от одного к другому а конкретно выбрать не могу), а желательно последовательность изучения тем/разделов (с/с++, winapi,direcxt и тд). Просьба отписать..заранее спасибо.
C++ Считать структурированные данные в массив, проверить их корректность http://www.cyberforum.ru/cpp-beginners/thread649306.html
Коротко: по заданию рассовать структурированные данные в массив проверить их корректронить(в числовом не должно быть букв), а потом вывести на экран. Сами данные смотреть вложенный файл! (если иероглифы шрифт на terminal поменяйте, просто напомнил)
C++ Вывод system() в программу Так вот: Нужно каким-либо обазом читать вывод system() из самой программы. Я знаю о возможности записывать вывод в файл, а затем читать его, но это медленно. есть варианты? подробнее

Показать сообщение отдельно
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.09.2012, 05:14     Считывание данных из файла
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
41
42
43
44
45
46
47
48
49
int main()
{
 system("cls");
 
 struct ob
 {
  char artikul[6];
  char opisanie[15];
  int cena;
  int kolvo;
 };
 
 ob *a;
 int i,otvet;
 int n = 1;
 
 
 //const char *input ="D:/result.txt";
 const char *input = "infile.txt";
   // *output="D:/result.txt";
 
 cout<<"File dlya chteniya otkrit"<<endl;
 
 ifstream in(input);
 
 if (!in)
 {
  cerr<<"Oshibka otkritiya!";
 }
 else
 {
  in >> n;
  a=(ob *)calloc(n, sizeof(ob));
  for(i = 0; i < n; i++)
  {
    in >> a[i].artikul;
    in >> a[i].opisanie;
    in >> a[i].cena;
    in >> a[i].kolvo;
    cout << a[i].artikul << " " <<a[i].opisanie << " " <<a[i].cena<< " " <<a[i].kolvo << endl;
  }
 }
cout<<"Dannye uspeshno schitany."<<endl;
free (a);
in.close();
 
 system("pause");
 return 0;
}
Цитата Сообщение от Andrew_Lvov Посмотреть сообщение
У тебя же будет ровно 5 байтов данных, после которого cout увидит мусор (artikul[5], artikul[6] и т.д.)
Там не мусор, а следующее поле структуры (opisanie). Поэтому cout << выводит artikul и продолжает вывод уже поля opisanie, пока не встретит там '\0', после этого выводит пробел, дальше - опять opisanie и далее. А вывод постороннего (некого адреса) у ТС происходит из-за этой строчки. Что здесь лишнее?
C++
1
cout<<a[i].artikul<<" "<<cout<<a[i].opisanie<<" "<<a[i].cena<<" "<<a[i].kolvo<<endl;
Добавлено через 4 минуты
Цитата Сообщение от polindroma Посмотреть сообщение
сделала так
C++
1
2
3
4
5
6
7
8
9
10
11
12
in>>n;
  in.ignore(1);
  a=(ob *)calloc(n,sizeof(ob));
  for(i=0;i<n;i++)
  {
    in.getline(a[i].artikul,6);
    in.ignore(1);
    in.getline(a[i].opisanie,15,' ');
    in>>a[i].cena;
    in>>a[i].kolvo;
    in.ignore(1);
  }
Если поля artikul и opisanie состоят из одного слова, то нет смысла усложнять код. in >> будет читать до пробела, т.е. слова.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru