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

Функция, возвращающая k-ю строку текстового файла - C++

Восстановить пароль Регистрация
 
краб
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 52
19.12.2012, 11:55     Функция, возвращающая k-ю строку текстового файла #1
*/ Описать функцию getLine(Name,k) строкового типа, возвращающую k-ю строку текстового файла с именем Name (строки нумеруются от 0). Если файл не существует или не содержит k-й строки, то функция возвращает пустую строку. С помощью этой функции вывести пять строк данного файла с указанными номерами.*
*\
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
#include<iostream>
#include<stdio.h>
using namespace std;
void mygetline(FILE * pFile, int k)
{int i;
char *buffer=new char[];
 while ( ! feof (pFile) )
 {
  for (i;i<k;i++)//поочерёдно считывает строки и к-ую строку выводит
     fgets (buffer , 100 , pFile);
 }
 if((buffer!=NULL) &&  ( k>i  )  ) puts(buffer);
 else " ";
    }
 
int main()
{
  FILE * pFile;
  int k; 
  
 pFile = fopen ("D:\\myfile.txt" , "r");
 cin>>k;
   if (pFile == NULL) cout<< ("Error opening file");
   else
   {
     mygetline(pFile,k);
     fclose (pFile);
   }
   return 0;
}
//не могу понять на 2008 компиляторе визуалке все работало сейчас на 2010 я добавил условие .что если к -той СТРОКИ нет выводил бы пробел типо пустутую строку .за мест о этого он сразу выводит типо файл равен нулю (pFile == NULL) cout<< ("Error opening file");
else

Добавлено через 37 секунд
ПОМОГИТЕ ЗАВТРА ГОРИТ СДАВАТЬ А САМ НЕ ПОЙМУ МОДЕТ БЫТЬ Я УКАЗЫВАЮ ПУТЬ К ФАЙЛУ НЕ ПРАВИЛЬНО ХОТЯ НА ДИСКЕ Д СРАЗУ ЛЕЖИТ ФАЙЛ MYFILE

Добавлено через 50 минут
C++ (Qt)
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
#include<iostream>
#include<stdio.h>
using namespace std;
void mygetline(FILE * pFile, int k)
{int i=0;
 char *buffer=new char[];
 while ( ! feof (pFile) )
 {
  for (i;i<k,i++)
fgets (buffer , 100 , pFile);
  }
 if(buffer!=NULL) 
 {
     puts(buffer); 
 }
 else "ERROR";
 }
int main()
{
  FILE * pFile;
  int k;
  pFile = fopen ("myfile.txt" , "r");
    
    cin>>k;
 
  if ((pFile == NULL)&& (k==NULL)) 
  cout<< ("        ");
  else
  {
    mygetline(pFile,k);
    fclose (pFile);
  } 
  system("pause");
  return 0;
 }
///dвот пришел к чему но почему то всегда выводит последнюю строку незнаю почему разве не должно выдавать к-тую строку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 11:55     Функция, возвращающая k-ю строку текстового файла
Посмотрите здесь:

функция, анализирующая строку и возвращающая число C++
C++ Функция, возвращающая номер самого правого вхождения заданного символа во введенную строку
считывание из текстового файла в строку C++
C++ Функция fopen() для большого текстового файла читает только первую строку
Удалить строку из текстового файла C++
Функция чтения столбцов чисел из текстового файла C++
Распечатать строку с заданным номером из текстового файла C++
C++ Функция возвращающая фрагмент текстового массива

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
19.12.2012, 12:17     Функция, возвращающая k-ю строку текстового файла #2
ан нет подожди
краб
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 52
19.12.2012, 12:25  [ТС]     Функция, возвращающая k-ю строку текстового файла #3
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
#include<iostream>
#include<stdio.h>
void mygetline( FILE *pfile,int k)
{char *buffer=new char;
  while ( ! feof (pfile) )//пока конец файла не достигнут
  {
         for (int i=0;i<k;i++)
         {
        fgets (buffer , 100 , pfile) ;
         }
  }
        puts(buffer);
} 
 
int main()
    
{
     FILE *pfile;
  int k; 
  
 
  pfile = fopen ("myfile.txt" , "r");
 std::cin>>k;
   if (pfile == NULL) std::cout<< ("Error opening file");
   else
   { mygetline(pfile,k);
   fclose (pfile);
     
   
   }
   system("pause");
   return 0;
}
ВОТ СОСТАВИЛ КОД НО ОН ПОЧЕМУ ТО ВЫВОДИТ НЕ К-ТУЮ СТРОКУ А ВСЕГДА ПОСЛЕДНЮЮ ХОТЯ ПО СЧЕТЧИКУ INT=0;I<K;I++ ВСЕ НОРМ
Yandex
Объявления
19.12.2012, 12:25     Функция, возвращающая k-ю строку текстового файла
Ответ Создать тему
Опции темы

Текущее время: 17:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru