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

Функция для работы с файлом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Напишите функцию которая находит корни квадратного уравнения ax^2+bx+c=0 http://www.cyberforum.ru/cpp-beginners/thread1091468.html
Напишите функцию которая находит корни квадратного уравнения ax^2+bx+c=0 и записывает результат в переменные типа double, передаваемые по ссылке. В случае отсутствия корней или ввода неправильных данных (a=0) функция выводит на экран соответствующие сообщения об этом. Так же функция выводит сообщение, если корни уравнения одинаковы. #include <iostream> #include<cmath> using namespace std; ...
C++ Как в visual studio 10 сделать кнопку на форме? сделал форму в visual studio 10.а как сделать пару кнопок? http://www.cyberforum.ru/cpp-beginners/thread1091458.html
C++ Нужно сделать что бы давало рандомно числа и нужно написать ответ
В командной строке. Тоесть примерно так: Запускаешь программу, показывает числа что выбрались рандомно : 15*3=? После этого пользователю нужно написать ответ сколько будет 15*3 и если правильно то напишет правильно если нет то не правильно
Подскажите правильно ли реализована программа решения уравнения? C++
необходимо решить задачу такую: \frac{du}{dt}=u(1-u-rv)+\frac{{d}^{2}u}{{dt}^{2}}\frac{dv}{dt}=-buv+\frac{{d}^{2}v}{{dt}^{2}} вот код. использую явную схему. скажите правильно ли это? #include <iostream> #include <cmath> #include <fstream> #define a -30.0 //левая граница отрезка #define b 30.0 //правая граница отрезка
C++ Сгенерировать матрицу 100х100 http://www.cyberforum.ru/cpp-beginners/thread1091430.html
пожалуйста помогите.Как сделать матрицу к примеру:100*100 ,чтоб ее не нужно было вводить с клавиатуры, рандом с случайными числами не подходит, числа должны идти от 0.
C++ Сортировки. Неизвестное обозначение Здравствуйте. Читаю тему про сортировки(говорят, что сортировки очень важная вещь в программировании) и там встречаются непонятные обозначения. Что означают такие записи в общем и в каждом конкретном виде: O(n^2) O(n log n) O(n) подробнее

Показать сообщение отдельно
Димферон
 Аватар для Димферон
3 / 3 / 2
Регистрация: 06.02.2014
Сообщений: 14
08.02.2014, 01:14  [ТС]     Функция для работы с файлом
DU, GuGo1991, я нашел в чем проблема моей программы
Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <cmath>
#include <iostream>
#include "conio.h"
#include "time.h"
#include <iomanip>
#include <ctype.h>
#include <string>
#include <cstring>
#include <Windows.h>
#include <fstream>
#include "Lib01LaS.h"
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    char CPP[250] = "\0";
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Введите название файла."<<endl;
    cout<<"Имя файла:";cin>>CPP;
    int len = strlen(CPP);
    CPP[len+1] = '\0';
    int summ_lines = SumLines(CPP, len);
    if (summ_lines == -1)
    {
        system("cls");
        cout<<"***Выбранного файла не существует!***"<<endl<<
            "Проверьте правельность введенного имени файла или пути к файлу."<<endl;
    }
        cout<<"В файле "<<summ_lines<<" строк."<<endl;  
    system("pause");
    return 0;
}
-------------------------------
//Lib01LaS.h : Расчет количества строк и символов в программе
#define const int max_len = 250;
int SumLines(char filename[], int len);
int SumSimvol(char* filename);
-------------------------------
//Lib01LaS.cpp : определение функций
#include "stdafx.h"
#include <string>
#include <iostream> 
#include <iomanip>
#include <cstring>
#include <Windows.h>
#include "conio.h"
#include "stdlib.h"
#include <cstdlib>
#include <fstream>
#include <stdio.h>
#include "Lib01LaS.h"
using namespace std;
 
char Name_file_us[250] = "\0";
int SumLines(char filename[], int len)
{ 
    for (int i = 0; i < len; i++)
    {
        Name_file_us[i] = filename[i];
    }
    ifstream fin(Name_file_us, ios::in);
    int SumStr = 0;
    char str[250]="\0";
    if(!fin.is_open())
    {       
        return -1;
    }
    while (!fin.eof())
    {
        fin.getline(str,250);
        size_t len_1 = strlen(str);
        while (len_1 != 0)
        {
            SumStr++;
        }
    }
    fin.close();
    return SumStr;
}

Проблема лишь в том что у меня не переходит на следующую строку файла вот в этом кусочке, и получается она бесконечно долго гоняет первую строку
C++
1
2
3
4
5
6
7
8
9
while (!fin.eof())
    {
        fin.getline(str,250);
        size_t len_1 = strlen(str);
        while (len_1 != 0)
        {
            SumStr++;
        }
    }
Добавлено через 14 минут
GuGo1991, DU, спасибо за помощь, я нашел в чем червоточена зарыта, больше тупил, с 1 раза правильно написал и сглупил в конце функции... с себя ржу просто страшно...
Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <cmath>
#include <iostream>
#include "conio.h"
#include "time.h"
#include <iomanip>
#include <ctype.h>
#include <string>
#include <cstring>
#include <Windows.h>
#include <fstream>
#include "Lib01LaS.h"
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    char CPP[250] = "\0";
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Введите название файла."<<endl;
    cout<<"Имя файла:";cin>>CPP;
    int len = strlen(CPP);
    CPP[len+1] = '\0';
    int summ_lines = SumLines(CPP, len);
    if (summ_lines == -1)
    {
        system("cls");
        cout<<"***Выбранного файла не существует!***"<<endl<<
            "Проверьте правельность введенного имени файла или пути к файлу."<<endl;
    }
        cout<<"В файле "<<summ_lines<<" строк."<<endl;  
    system("pause");
    return 0;
}
-------------------------------
//Lib01LaS.h : Расчет количества строк и символов в программе
#define const int max_len = 250;
int SumLines(char filename[], int len);
int SumSimvol(char* filename);
-------------------------------
//Lib01LaS.cpp : определение функций
#include "stdafx.h"
#include <string>
#include <iostream> 
#include <iomanip>
#include <cstring>
#include <Windows.h>
#include "conio.h"
#include "stdlib.h"
#include <cstdlib>
#include <fstream>
#include <stdio.h>
#include "Lib01LaS.h"
using namespace std;
 
char Name_file_us[250] = "\0";
int SumLines(char filename[], int len)
{ 
    for (int i = 0; i < len; i++)
    {
        Name_file_us[i] = filename[i];
    }
    ifstream fin(Name_file_us, ios::in);
    int SumStr = 0;
    char str[250]="\0";
    if(!fin.is_open())
    {       
        return -1;
    }
    while (!fin.eof())
    {
        fin.getline(str,250);
        size_t len_1 = strlen(str);
        if(len_1 != 0) // <--- вот тут дал маху, вместо if написал while и программа тупила
        {
            SumStr++;
        }
    }
    fin.close();
    return SumStr;
}


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