Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2010, 09:01   #1
saidmir
Пользователь
 
Аватар для saidmir
 
Регистрация: 04.07.2010
Сообщений: 19
По умолчанию считывание в массив

Доброго времени суток

У меня вопрос такой
Как считывать из файла вроде бы разобрался
только вот не понятно как это сделать в массив
имею вот такой код считывания

#include <iostream>
#include <fstream>
using namespace std;
int main () {
ifstream f1("events.csv");
for (int j=0;j<6;j++){
for (int i=0;i<3;i++){
char one[25];
input_file>>one;
cout<<one<<" ";
};
cout<<"\n";
};
cout<<"\n";
}

работает это вот так

saidmir@alexmertvdesktop:~/proga/240610-1$ ./sa
N;206;���-1;23.06.2010 20:09:24;23.06.2010 20:10:26;0:01:02;;,
+;304;37;23.06.2010 20:09:42;23.06.2010 20:11:02;0:01:19;;,
N;208;���-1;23.06.2010 20:09:33;23.06.2010 20:11:36;0:02:02;;,
N;411;���;23.06.2010 20:09:32;23.06.2010 20:12:32;0:03:00;;,
-;396;XI;23.06.2010 20:10:20;23.06.2010 20:12:44;0:02:24;;,
N;417;���;23.06.2010 20:09:30;23.06.2010 20:12:50;0:03:19;;,


если же я даю вот так

#include <iostream>
#include <fstream>
using namespace std;
int main () {
ifstream f1("events.csv");
for (int j=0;j<1;j++){
for (int i=0;i<1;i++){
char one[25];
input_file>>one;
cout<<one<<" ";
};
cout<<"\n";
};
cout<<"\n";
}

то не читается вся строка а читается только ее часть
saidmir@alexmertvdesktop:~/proga/240610-1$ ./sa
N;206;���-1;23.06.2010


И вот у меня три вопроса
  1. Почему так и как прочитать всю стоку целиком
  2. как считать этот фаил в массив
  3. почему g++ не понимает функцию atoi выдает ошибку типа "Not fuction"

помогите кодом кто может уже три дня мучаюсь как считать это в массив

в массиве должно быть так

saidmir@alexmertvdesktop:~/proga/240610-1$ ./sa
N 206 ���-1 23.06.2010 20:09:24 23.06.2010 20:10:26 0:01:02
+ 304 37 23.06.2010 20:09:42 23.06.2010 20:11:02 0:01:19
N 208 ���-1 23.06.2010 20:09:33;23.06.2010 20:11:36 0:02:02
N 411 ��� 23.06.2010 20:09:32 23.06.2010 20:12:32 0:03:00
- 396 XI 23.06.2010 20:10:20 23.06.2010 20:12:44 0:02:24
N 417 ��� 23.06.2010 20:09:30 23.06.2010 20:12:50 03:19



затем я буду проверять первый столбец массива на наличие + и создавать новый массив с +'ми затем при помощи ofstream f2("otchet.doc") выводить эти плюсы в фаил .doc

Заранее Спасибо
Кто я в этом деле?
Хотелось писать под Mac OS X, но необходимость писать под Windows тоже интересное занятие...

Последний раз редактировалось saidmir; 04.07.2010 в 09:04.
saidmir вне форума Ответить с цитированием
Старый 04.07.2010, 09:58   #2
saidmir
Пользователь
 
Аватар для saidmir
 
Регистрация: 04.07.2010
Сообщений: 19
По умолчанию

char a[100];
char f[1000];
char tmp;
int i,n,s;
n=-1;
while (!f1.eof()){
n++;
f1>>tmp;
if (!f1.eof())
a[n]=tmp;
};
s=0;
for (i=0;i<n;i++){
f1 >> f[i];
};
}
Кто я в этом деле?
Хотелось писать под Mac OS X, но необходимость писать под Windows тоже интересное занятие...
saidmir вне форума Ответить с цитированием
Старый 04.07.2010, 10:02   #3
Indian
Форумчанин
 
Регистрация: 23.02.2010
Сообщений: 107
По умолчанию

Цитата:
Почему так и как прочитать всю стоку целиком
ifstream, обычно, используется для ввода/вывода переменных в/из файла.
Т.е. "input_file>>one;" читает до пробела.
Код:
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
	char str[25];
	ifstream x("text.txt",fstream::in);
	x.getline(str,25);
	cout<<str;
	return 0;
}
Цитата:
почему g++ не понимает функцию atoi выдает ошибку типа "Not fuction"
#include <cstdlib>
Indian вне форума Ответить с цитированием
Старый 04.07.2010, 10:09   #4
saidmir
Пользователь
 
Аватар для saidmir
 
Регистрация: 04.07.2010
Сообщений: 19
По умолчанию

Я попробовал вот так
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ifstream f1;
f1.open("events.csv");
char a[100];
char f[1000];
char tmp;
int i,n,s;
n=-1;
while (!f1.eof()){
n++;
f1>>tmp;
if (!f1.eof())
a[n]=tmp;
};
s=0;
for (i=0;i<n;i++){
f1 << f[i];
};
}

мне компиль дал вот что :
saidmir@alexmertvdesktop:~/proga/240610-1$ g++ sa.cpp -o sa
sa.cpp: In function ‘int main()’:
sa.cpp:29: error: no match for ‘operator<<’ in ‘f1 << f[i]’


когда пробую вот так


#include <iostream>
#include <fstream>
using namespace std;
int main () {
ifstream f1;
f1.open("events.csv");
char a[100];
char f[1000];
char tmp;
int i,n,s;
n=-1;
while (!f1.eof()){
n++;
f1>>tmp;
if (!f1.eof())
a[n]=tmp;
};
s=0;
for (i=0;i<n;i++){
f1>> f[i];
};
}
Дает вот что

saidmir@alexmertvdesktop:~/proga/240610-1$ g++ sa.cpp -o sa
saidmir@alexmertvdesktop:~/proga/240610-1$ ./sa
Ошибка сегментирования



Как быть и каков алгоритм

по моему он такой
Считать строку и записать ее в массив

while (!f1.eof()){
n++;
f1>>tmp;
if (!f1.eof())
a[n]=tmp;
}; // считываем стоки

for (i=0;i<n;i++){
tmp = f[i];
};// записываем в массив

но опять т же
saidmir@alexmertvdesktop:~/proga/240610-1$ g++ sa.cpp -o sa
saidmir@alexmertvdesktop:~/proga/240610-1$ ./sa
Ошибка сегментирования
Кто я в этом деле?
Хотелось писать под Mac OS X, но необходимость писать под Windows тоже интересное занятие...
saidmir вне форума Ответить с цитированием
Старый 04.07.2010, 10:18   #5
saidmir
Пользователь
 
Аватар для saidmir
 
Регистрация: 04.07.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Indian Посмотреть сообщение
ifstream, обычно, используется для ввода/вывода переменных в/из файла.
Т.е. "input_file>>one;" читает до пробела.
Код:
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
	char str[25];
	ifstream x("text.txt",fstream::in);
	x.getline(str,25);
	cout<<str;
	return 0;
}
#include <cstdlib>
спасибо теперь понятно как считать всю стоку
Код:
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
	char str[100];
	ifstream x("events.csv",fstream::in);
	x.getline(str,100);
	cout<<str<<"\n";
	return 0;
}
осталось разобраться как считать весь фаил из 3000 строк в массив
Кто я в этом деле?
Хотелось писать под Mac OS X, но необходимость писать под Windows тоже интересное занятие...
saidmir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание строк ZET78 Общие вопросы C/C++ 6 11.05.2010 07:41
Считывание данных из БД aimk0 БД в Delphi 0 05.05.2010 23:53
c++ считывание с файла. tsergey Помощь студентам 20 24.04.2010 23:30
Считывание строк в массив mc_12 Общие вопросы C/C++ 4 05.01.2009 13:11
Считывание символов AI01 Общие вопросы C/C++ 5 01.03.2008 17:30