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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2012, 21:05   #1
-=<_Makap_>=-
Пользователь
 
Регистрация: 14.04.2012
Сообщений: 17
По умолчанию чтение строки из файла

Нужно сделать программу (урезанная имитация команды "find" в cmd), которая будет выполнять поиск заданной строки в указанном файле и выводит номер данной строки (если та была найдена). Имя, расположение файла, искомая строка, и атрибут передаются через командную строку.
Проблем с поиском файла и передачей параметров нет. Не совсем пойму как реализовать построчное чтение из файла.
Использую структуру:
Код:
typedef struct fblk
{char ff_reserved[21];
 char ff_attrib;
 int  ff_ftime;
 int  ff_fdate;
 long ff_size;
 char ff_name[13];
}fd;
объявленные переменные:
Код:
FILE *stream;
fd fblk;
int done,i=0,j;
char str[50],sbuf[255],fname[13],direct[50],a[2],attr[]="/N",*d,*result;
код для поиска файла и примерный поиск строки:
Код:
 i=0;
 strcpy(str,argv[2]);
 done=findfirst(direct,(struct ffblk*)&fblk,-1);
 stream=fopen(fblk.ff_name,"w+");
 fseek(stream,0L,SEEK_SET);
 while (!eof(stream))
   {result=fgets(sbuf,strlen(str)+1,stream);
    puts(sbuf);
    i++;
   }
 fclose(stream);
при выполнении, в переменной "fblk.ff_name" находится имя искомого файла. Поиск строки реализовать не получается. Поясните пожалуйста, что делаю не так.
-=<_Makap_>=- вне форума Ответить с цитированием
Старый 16.05.2012, 22:23   #2
-=<_Makap_>=-
Пользователь
 
Регистрация: 14.04.2012
Сообщений: 17
По умолчанию

не совсем точно написал последнее предложение: не получается считать строки из файла.
-=<_Makap_>=- вне форума Ответить с цитированием
Старый 18.05.2012, 21:05   #3
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Сообщений: 155
По умолчанию

Просто пройдите в цикле файл, в строку каждый раз сохраняйте считанную строку файла, и сравнивайте ее с искомым значением. Естественно, у вас должен быть счетчик, который потом будет отображать номер строки. А мудрить не надо, тот код, который вы написали, для поиска строки, намудренный какой-то.
rmv240899 вне форума Ответить с цитированием
Старый 18.05.2012, 21:37   #4
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

Если я правильно понял задачу, вот решение..
Код:
// Prog.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>

using namespace std;

int _tmain()
{
	
	char str[100]={"qqqwwweee"};
	int i,j, c=0;
	char line[100];

	ifstream in("in.txt");
	
	while(!in.eof()){
		in.getline(line, 100);
		//cout<<line<<endl; выводит строки файла
		c++;
		if(strcmp(line, str)==0){cout<<"Nomer stroki - "<<c;}
	};
	
	in.close();

	getch ();
	return 0;
}
вот весь проект..
Prog.rar
Спеши медленно.

Последний раз редактировалось asmars; 18.05.2012 в 21:41. Причина: добавление
asmars вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение строки из файла fasty Помощь студентам 2 02.03.2012 23:56
Чтение длинны строки из файла R4peMe Помощь студентам 1 21.02.2011 13:30
Строки, сравнение, чтение из файла Matfeya Общие вопросы C/C++ 5 25.01.2011 16:53
чтение определенной строки из файла. Serjuk Общие вопросы C/C++ 12 22.05.2010 13:46
Чтение строки из файла kroŧ Общие вопросы Delphi 4 14.05.2010 15:42