Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |  |
более подробно. 29.08.01 00:36 Число просмотров: 832
Автор: kabanchik Статус: Незарегистрированный пользователь
|
есть такая ф-ия
char *fgets( char *string, int n, FILE *stream );
она считывает из открытого файла данные по строчно. т.е. вот тебе пример кода
#include <stdio.h>
int main( int argc, char *argv[ ])
{
if (argc == 0)
return -1;
FILE* file = fopen(*argv, "rt");
char* buffer = new char[4 * 1024];
if (file != NULL && buffer != NULL)
{
int nCount = 0;
while (fgets(buffer, 4 * 1024, file) != NULL)
nCount ++;
printf("the file %s contains %d rows.\n", *argv, nCount);
}
if (file != NULL)
fclose(file);
if (buffer != NULL)
delete [] buffer;
return 0;
}
---
если этот метод тебе не нравиться, то сам считывай файл и просматривай каждый символ, пока не наткнешься на "\n"
если память не изменяет, то конец строки обозначаются : "\n" - для UNIX, а "\n\r" - для DOS.
|
|
<programming>
|
работа с файлами в [Visua C++] MFC маленький вопрос 27.08.01 18:50
Автор: коcтя Статус: Незарегистрированный пользователь
|
[Visua C++] MFC
есть текстовый файл. необходимо в нем удалить пятую строку.
подскажите каким образом это реализовать.
|
 |
просмотри - fgets(...) 27.08.01 23:57
Автор: kabanchik Статус: Незарегистрированный пользователь
|
|
|
 |  |
если не сложно чуть более подробно. рожалуйста 28.08.01 01:57
Автор: коcтя Статус: Незарегистрированный пользователь
|
|
1
|
 |  |  |
более подробно. 29.08.01 00:36
Автор: kabanchik Статус: Незарегистрированный пользователь
|
есть такая ф-ия
char *fgets( char *string, int n, FILE *stream );
она считывает из открытого файла данные по строчно. т.е. вот тебе пример кода
#include <stdio.h>
int main( int argc, char *argv[ ])
{
if (argc == 0)
return -1;
FILE* file = fopen(*argv, "rt");
char* buffer = new char[4 * 1024];
if (file != NULL && buffer != NULL)
{
int nCount = 0;
while (fgets(buffer, 4 * 1024, file) != NULL)
nCount ++;
printf("the file %s contains %d rows.\n", *argv, nCount);
}
if (file != NULL)
fclose(file);
if (buffer != NULL)
delete [] buffer;
return 0;
}
---
если этот метод тебе не нравиться, то сам считывай файл и просматривай каждый символ, пока не наткнешься на "\n"
если память не изменяет, то конец строки обозначаются : "\n" - для UNIX, а "\n\r" - для DOS.
|
 |  |  |  |
...и более изяШно (ImHO) :) 29.08.01 13:55
Автор: XR <eXtremal Research> Статус: The Elderman
|
#include <fstream>
#include <iostream>
main( int argc, char *argv[])
{
char buff[1024];
int i=0;
if(argc < 3)
{
cout << "Usage: " << argv[0] << " [src_file] [dst_file]\n" << flush;
return -1;
}
ifstream src_file(argv[1],ios::nocreate);
if(!src_file) cout << "File " << argv[1] << " does not exist\n" << flush;
ofstream dst_file(argv[2],ios::noreplace);
if(dst_file) cout << "File " << argv[2] << " already exist\n" << flush;
do{
src_file.getline(buff,1024);
i++;
if(i!=5)
dst_file << buff << "\n" << flush;
}while(src_file && dst_file);
return 0;
}
---
> > если этот метод тебе не нравиться, то сам считывай файл и > просматривай каждый символ, пока не наткнешься на "\n" > если память не изменяет, то конец строки обозначаются :
> "\n" - для UNIX, а "\n\r" - для DOS.
И в вышеприведенном раскладе это будет УМЕТЬСЯ автоматом :)
|
|
|