С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 09.11.2022
Сообщений: 36

Открыть файлы для чтения вводя имя с клавиатуры

18.01.2023, 01:00. Показов 572. Ответов 5

Студворк — интернет-сервис помощи студентам
Ввожу имя первого файла нажимаю энтер, а далее ничего не присходит, переход на следующую строку и программа зависает, ввод не возможен, введите имя второго файла не высвечивается. Помогите, очень важно, времени до сдачи мало.

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <fstream>
#include <string.h>
#include <string>
#include "Untitled1.h"
using namespace std;char name1[40];//bumagi.txt
char name2[40];//torgi.txt
 
int er; //Переключатель
int menu();
void enter_new();// 1) 
void change();// 2) поиск 2
void find();// 3) 
void sort();// 4) 
void today();//5)
void file();
 
 
 
int menu() {
    int er;
    cout << "Vvedite:"<<endl;
    cout << "1. Dlya zagruzki dannyh "<<endl;
    cout << "2. Dlya vvedennya novoi zapysu"<<endl;
    cout << "3. Dlya poiska dlya kagdogo tsennoho doc zminy "<<endl;
    cout << "4. Dlya yvedennya danykh  "<<endl;
    cout << "5. Dlya vyvedennya za emitentom:(nazva )"<<endl;
    cout << "6. Dlya vyvedennya zapysu(iv) v otdelnuy den"<<endl;
 
    cin >> er;
    return er;
}
 
int main() {
        switch (menu()) {
            case 1:
                file();         
                break;
            case 2:
                enter_new();    
                break;
            case 3:
            change();   
                break;
            case 4:
            find ();    
                break;
            case 5:
            sort(); 
                break;
            case 6:
            today();
                break;  
            default:
                cout << "Ne virnyy vybir"<<endl;
        }
    }
 
///////////////
void file() {
    cout<<"Vvedite imya faila : "<<endl;
    cin.ignore();
    cin>>name1;
    strcat(name1,".txt");
ifstream in(name1);
        for(int i=0;!cin.eof();i++){
            
        in>>mas[i].tiker1;
        in>>mas[i].pid; 
        getline(in,mas[i].gal);
        getline(in,mas[i].adresa);
        in.ignore();
    }
    in.close();
    cout<<"Vvedite imya vtorogo faila : ";
    //cin.ignore();
    cin>>name2;
ifstream fin(name2);
        for
    (int i=0;!fin.eof();i++){
        
        fin>>mas[i].tiker2; 
        getline(fin,mas[i].tip);
        fin>>mas[i].cena;
        fin >> mas[i].data.d >>mas[i].data.m>>mas[i].data.y;
        fin.ignore();
    }
    fin.close();
}
Добавлено через 8 минут
Нашел. в 66строчке не
C++
1
!cin.eof()
надо
C++
1
!in.eof()
Добавлено через 10 секунд
Нашел. в 66строчке не
C++
1
!cin.eof()
надо
C++
1
!in.eof()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.01.2023, 01:00
Ответы с готовыми решениями:

Как создать папку, вводя ее имя с клавиатуры?
Как создать папку, вводя ее имя с кл-ы?? Подскажите пожалуйста

Открыть для редактирования текстовый файл, имя которого задается с клавиатуры. Определить, в какой из строк
Открыть для редактирования текстовый файл , имя которого задается с клавиатуры . Определить, в каком из строк файла наибольшее количество...

Хук для чтения с клавиатуры. Добавление по кодам клавиатуры
Есть вот такой хук для считывания клавиш globalKeyboardHook gkh = new globalKeyboardHook(); gkh.HookedKeys.Add(Keys.Q); ...

5
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
18.01.2023, 01:02
Цитата Сообщение от Plastic _frog_ Посмотреть сообщение
Открыть файлы для чтения вводя имя с клавиатуры
А файл то существует, где он находится ?
А в вводимом имени для файла пробелы есть ? (вы считываете только одно слово, до первого непечатного символа)

Добавлено через 56 секунд
eof() вам тут не поможет, так как вы его используете.
0
0 / 0 / 0
Регистрация: 09.11.2022
Сообщений: 36
18.01.2023, 01:20  [ТС]
Да, файл создан и не пустой, а имя файла состоит из одного слова, ввожу без пробелов. Если не eof, то как тогда?

Возникла еще проблема, после введения двух имен файлов далее ничего не происходит, программа зависает. а Нужно чтобы меню заново высветилось. Код немного подправлен.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <iostream>
#include <fstream>
#include <string.h>
#include <string>
#include "Untitled1.h"
using namespace std;char name1[40];//bumagi.txt
char name2[40];//torgi.txt
 
int er; //Переключатель
int menu();
void enter_new();// 1) 
void change();// 2) поиск 2
void find();// 3) 
void sort();// 4) 
void today();//5)
void file();
 
 
 
int menu() {
    int er;
    cout << "Vvedite:"<<endl;
    cout << "1. Dlya zagruzki dannyh "<<endl;
    cout << "2. Dlya vvedennya novoi zapysu"<<endl;
    cout << "3. Dlya poiska dlya kagdogo tsennoho doc zminy "<<endl;
    cout << "4. Dlya yvedennya danykh  "<<endl;
    cout << "5. Dlya vyvedennya za emitentom:(nazva )"<<endl;
    cout << "6. Dlya vyvedennya zapysu(iv) v otdelnuy den"<<endl;
 
    cin >> er;
    return er;
}
 
int main() {
while(1){
        switch (menu()) {
            case 1:
                file();         
                break;
            case 2:
                enter_new();    
                break;
            case 3:
            change();   
                break;
            case 4:
            find ();    
                break;
            case 5:
            sort(); 
                break;
            case 6:
            today();
                break;  
            default:
                cout << "Ne virnyy vybir"<<endl;
        }
    }
 }
///////////////
void file() {
    cout<<"Vvedite imya faila : "<<endl;
    cin.ignore();
    cin>>name1;
    strcat(name1,".txt");
ifstream in(name1);
        for(int i=0;!in.eof();i++){
            
        in>>mas[i].tiker1;
        in>>mas[i].pid; 
        getline(in,mas[i].gal);
        getline(in,mas[i].adresa);
        in.ignore();
    }
    in.close();
    cout<<"Vvedite imya vtorogo faila : ";
    //cin.ignore();
    cin>>name2;
ifstream fin(name2);
        for
    (int i=0;!fin.eof();i++){
        
        fin>>mas[i].tiker2; 
        getline(fin,mas[i].tip);
        fin>>mas[i].cena;
        fin >> mas[i].data.d >>mas[i].data.m>>mas[i].data.y;
        fin.ignore();
    }
    fin.close();
    cin.ignore();
}
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
18.01.2023, 14:39
Цитата Сообщение от Plastic _frog_ Посмотреть сообщение
in>>mas[i].tiker1;
        in>>mas[i].pid;
        getline(in,mas[i].gal);
        getline(in,mas[i].adresa);
       // это тут к чему? in.ignore();
где объявление массива и описание структуры?
0
0 / 0 / 0
Регистрация: 09.11.2022
Сообщений: 36
18.01.2023, 14:49  [ТС]
Объявление массива и описание структуры в подключенном файле "Untitled1.h"
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
19.01.2023, 08:11
Plastic _frog_, Ну ну. Вы не освоили массивы. Вы не умеете писать функции, тем более передавать массивы в функцию, что говарить уже о структурах.Образцы (шаблоны) программ для типовых задач
посмотрите хотя бы как с массивами и функциями пользоваться

Добавлено через 27 минут
Вот небольшой пример, когда желания отличаются с реальностью. Пишет Прочитать, сам в коде записывает ( "глубокие" познания), это в начале, до конца не читал, наверное разобрались.
Чтение из файла в структуру
Здесь структуры. Вам останеться разобраться с массивоми структур.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.01.2023, 08:11
Помогаю со студенческими работами здесь

Открыть файл для чтения, а если его нет, то создать его и открыть для записи
Здравствуйте! Подскажите, как сделать программу, чтобы она открывала файл для чтения, а если его нет, то создавала его и открывала его для...

Задача. Составить блок-схемы алгоритма и программу для вычисления значения выражения, вводя переменную x клавиатуры
-3x+9, если x&lt;=7(меньше или ровно если не понятно :) ) Y={ 1/(x-7), если x&gt;0

Задание : ввести имя файла с клавиатуры и если есть то открыть его
Задание такое вести полное имя файла с клавиатуры и если он существует, то открыть его, переименовать и переместить...помогите пожалуйста...

файл открыть для чтения
Чтобы на строке WordApp.Documents.Open (D:\К1.doc&quot;) именно на этой строке, а не на строке Set WordApp = Documents.Open...

Открыть себя для чтения
добрый день. мне нужно чтобы программа открывала себя и сохраняла в массив байт. столкнулся с несовместимостью типов, прикладываю код. ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru