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

Работа с файлами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему выдает такую ошибку? c++ при компиляции http://www.cyberforum.ru/cpp-beginners/thread1064457.html
Вот код программы, нахождение наибольшего числа с 3 заданных #include <iostream> uisng namespace std; int max(int a,int b) { if(a>b) return a; return b;
C++ Странно видёт себя программа Написал программу конвертор валют но при выборе валюты программа сразу пишет ответ. #include <iostream> using namespace std; int main(){ setlocale(LC_ALL, "Russian"); //Русский язык int... http://www.cyberforum.ru/cpp-beginners/thread1064455.html
Ругается на gets() C++
Добрый вечер, рассматривал функцию gets() Но при компиляции программы выдаёт ошибку warning C4996: 'gets': This function or variable may be unsafe. Consider using gets_s instead. To disable...
C++ Разобраться с кодом
Выпуклый многоугольник на плоскости задан целочисленными координатами своих вершин в порядке их обхода по часовой стрелке. Требуется подсчитать количество точек с целочисленными координатами, лежащих...
C++ Баг в алгоритме поворота точек http://www.cyberforum.ru/cpp-beginners/thread1064435.html
Доброго времени суток. Есть vector структур , которые описывают точку. В подпрограмме все точки поворачиваются на угол относительно точки центра поворота. Но при выполнении поворота при итерации...
C++ пересечения прямой и гиперболы С клавиатуры задаются коэффициенты, определяющие прямую на плоскости. Найти координаты точек пересечения этой прямой с гиперболой и сформировать из них множество А. Вот задание помогите... подробнее

Показать сообщение отдельно
VALIDOL4IK
11 / 2 / 5
Регистрация: 09.09.2011
Сообщений: 60

Работа с файлами - C++

06.01.2014, 19:59. Просмотров 438. Ответов 14
Метки (Все метки)

Есть следующее задание.
Написать программу, которая выводит строку, набранную на клавиатуре, в текстовый файл.
Затем:
- считывает текст из файла
- находит самое длинное слово и его порядковый номер в тексте.
Но проблема в том, что когда я ввожу несколько слов разделенных пробелами, то записывает в файл только первое слово. В чем проблема, и как исправить?
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
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main () {
    setlocale (0, "rus");
    char str[512] = {0};
    char str1[512] = {0};
    char maxword [512] ={0};
    int i;
    int maxnum = 0, maxlen = 0;
 
    ofstream f;
    f.open("C:\\1.txt", ios::out);
    cout << "Введите строку: ";
    cin >> str;
    f<<str;
    f.close();
 
    fstream f1;
    f1.open("C:\\1.txt", ios::in);
    f1>>str1;
    f1.close ();
    cout<<str1;
 
    cin.getline(str1, sizeof(str1));
    for(char* p = strtok(str1, " ,"); p; p = strtok(0, " ,"))
    {
        ++cntr;
 
        if(strlen(p) > maxlen)
        {
            maxlen = strlen(p);
            strcpy(maxword, p);
            maxnum = cntr;
        }
    }
    
     cout << "Samoe dlinnoe slovo: " << maxword << "\nEgo nomer: " << maxnum << "\n";
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru