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

Файлы - C++

Восстановить пароль Регистрация
 
Ирбиска
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 13
31.05.2012, 08:27     Файлы #1
Напишите программу, которая принимает с клавиатуры название файла и выводит на экран пятидесятый символ этого файла. Если файл короче 50 символов, то сообщить об этом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 08:27     Файлы
Посмотрите здесь:

C++ Файлы
Файлы C++
C++ файлы
C++ Файлы
C++ файлы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
31.05.2012, 09:12     Файлы #2
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
36
37
38
39
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE,"Russian");
    char ch;
    string fname;
    cin>>fname;
 
    fstream fin;
    fin.open((char*)fname.c_str(),fstream::in);
 
    if(!fin.is_open())
    {
        cout << "Нету такого файла!" << endl;
        return 1;
    }
 
    fin.seekg(0, fstream::end);
    streampos length = fin.tellg();
    fin.seekg(0, fstream::beg);
 
    if(length<50)
    {
        cout << "Слишком маленький файл!" << endl;
    }
    else
    {
       fin.seekg(50, fstream::beg);
       fin.get(ch);
       cout<<ch;
    }
 
    fin.close();
    return 0;
}
Ирбиска
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 13
31.05.2012, 09:27  [ТС]     Файлы #3
defer, Спасибо огромное! А можешь обьяснить код?
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
31.05.2012, 09:32     Файлы #4
что именно не понятно?
Ирбиска
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 13
31.05.2012, 09:45  [ТС]     Файлы #5
Желательно прямо построчно)

Добавлено через 4 минуты
defer, Разобралась) Спасибо)
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
31.05.2012, 09:50     Файлы #6
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
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE,"Russian"); 
    char ch; //для 50-го символа
    string fname; //строка с именем файла
    cin>>fname; //записываем имя файла 
 
    fstream fin; //поток для файла
 
    //fin.open требует первым аргументом char* поэтому приводим string к char*   (char*)fname.c_str()
    fin.open((char*)fname.c_str(),fstream::in);
 
    //если файл не открылся
    if(!fin.is_open())
    {
        cout << "Нету такого файла!" << endl;
        return 1;
    }
 
    //идем в конец файла
    fin.seekg(0, fstream::end);
    //считаем сколько прошли
    streampos length = fin.tellg();
    //возвращаемся в начало
    fin.seekg(0, fstream::beg);
 
  
    if(length<50)
    {
        cout << "Слишком маленький файл!" << endl;
    }
    else
    {
      //идем к 50 символу
       fin.seekg(50, fstream::beg);
      //считываем его
       fin.get(ch);
       cout<<ch;
    }
    //закрываем файл
    fin.close();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2012, 11:41     Файлы
Еще ссылки по теме:

Файлы.Текстовые файлы C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
31.05.2012, 11:41     Файлы #7
Цитата Сообщение от Ирбиска Посмотреть сообщение
Напишите программу, которая принимает с клавиатуры название файла и выводит на экран пятидесятый символ этого файла. Если файл короче 50 символов, то сообщить об этом.
- Ниже крайне лаконичная и простая реализация
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
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{
    char str[51] = {0};//50 ñèìâîëîâ + '\0'
    char fName[256] = {0};
    cout<<"Enter file path : ";
    cin.getline(fName,255);//Ñ÷èòûâГ*ГҐГ¬ èìÿ ГґГ*éëГ*
    ifstream ifs(fName);
    if(!ifs.is_open())
        cout<<"Error open "<<fName<<endl;
    else
    {
        //Âîò ïðîñòî ГЁ ëåãêî ïûòГ*åìñÿ Г±Г·ГЁГІГ*ГІГј ñòðîêó Гў 50 ñèìâîëîâ
        ifs.read(str,50);
        ifs.close();
        if(str[49] == 0)
            cout<<"File length less than 50 chars\n";
        else
            cout<<"50-th symbol in file : "<<str[49]<<endl;
    }
    system("pause");//Ñòîï-òî÷êГ* Гў ïðîãðГ*ììå
    return 0;
}
25chars.txt 1231454fdgdfgddfgfdhfg84
55chars.txt fhgjfhkjhg4j4.,l4h84l5djdjf4kghkfk4lhl;48kj;l8544A8fdh
Миниатюры
Файлы   Файлы  
Yandex
Объявления
31.05.2012, 11:41     Файлы
Ответ Создать тему
Опции темы

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