Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как работать с файлом как с потоком? / 4 сообщений из 4, страница 1 из 1
24.01.2006, 11:22
    #33499134
Gradient
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с файлом как с потоком?
Народ! подскажите, пожалуйста, как в VC 6 работать с файлом как с потоком?

1) Что надо #include
2) Какую либу подключить (если надо)
3) Как открыть/закрыть

А то не зная названий функций чего-то не везет с поиском.
Дальше сам накопаю. Заранее спасибо.
...
Рейтинг: 0 / 0
24.01.2006, 12:40
    #33499493
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с файлом как с потоком?
GradientНарод! подскажите, пожалуйста, как в VC 6 работать с файлом как с потоком?

1) Что надо #include
2) Какую либу подключить (если надо)
3) Как открыть/закрыть

А то не зная названий функций чего-то не везет с поиском.
Дальше сам накопаю. Заранее спасибо.
Примерно так:
[src c++]
#include <fcntl.h>
#include <io.h>
#include <conio.h>
#include <stdio.h>

int main(int argc, char* argv[])
{
// TODO: code your application's behavior here.
FILE *stream;
long BitesIsRead;
int hr;
char *p,*r;
char *fld[30];
char buffer[1024];
char delim[]="\t|,\n";

ZeroMemory((void *)buffer,1024);
ZeroMemory((void *)&fld,sizeof(fld));

if((stream=fopen("D:\\temp\\25_in.out","rb"))!=NULL)
{
int j=0;
while(fgets(buffer,sizeof(buffer),stream)!=NULL)
{
j++;
int i=1;
fld[0]=buffer;
r=buffer;
BitesIsRead=strlen(buffer);
for(hr=0;hr<strlen(delim);hr++)
{
while((p=strchr(r,delim[hr]))!=NULL)
{
*p='\0';
fld[i++]=++p;
r=p;
}
}

for (i;i<30;i++)
fld =NULL;

ZeroMemory((void *)buffer,1024);
ZeroMemory((void *)&myBill,sizeof(myBill));
ZeroMemory((void *)&fld,sizeof(fld));
}
if((hr=fclose(stream))==EOF)
{
BitesIsRead=GetLastError();
cout<<"Last Error code is:"<<BitesIsRead<<endl;
getch();
}
}
else
{
cout<<"Sorry! File Opening is failed!"<<endl;
BitesIsRead=GetLastError();
cout<<"Last Error code is:"<<BitesIsRead<<endl;
getch();
}
getch();
return 0;
}
[/src c++]
...
Рейтинг: 0 / 0
24.01.2006, 12:42
    #33499507
redskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с файлом как с потоком?
GradientНарод! подскажите, пожалуйста, как в VC 6 работать с файлом как с потоком?

1) Что надо #include
2) Какую либу подключить (если надо)
3) Как открыть/закрыть

А то не зная названий функций чего-то не везет с поиском.
Дальше сам накопаю. Заранее спасибо.

1) fstream
2) это стандартная библиотека, т.е. обычно дополнительных телодвижений не требуется
3) объекты ifstream (ввод) или ofstream (вывод). открытие либо на конструкторе, либо open. Закрытие либо close, либо сами при выходе из блока.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#include <string>
#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
{
    if(argc >  1 )
    {
        string s;
        ifstream ifs(argv[ 1 ]);
        while(ifs >> s)
            cout << s << endl;
    }
    return  0 ;
}


g++ test.cpp
./a.out test.cpp
...
Рейтинг: 0 / 0
24.01.2006, 12:51
    #33499546
redskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с файлом как с потоком?
эээ... пардон за


g++ test.cpp
./a.out test.cpp


ляпнул сгоряча лишнего...
Но в VC6 тоже самое - Ctrl-S, F7, F5 :)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как работать с файлом как с потоком? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]