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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Natsu_Zirok
-1 / 0 / 1
Регистрация: 14.10.2013
Сообщений: 156
#1

Размер файла или "баги, лаги" - C++

19.04.2014, 13:11. Просмотров 406. Ответов 13
Метки нет (Все метки)

Проблема в том что я не могу узнать размер файла!
У меня файл весит 0 байт, но выводится вторая часть, но там вообще выводится какая-то кодировка.(Фиг поймешь какая)

Нужно: что бы считывалась сколько весит
если 0 байт то
внести записи
если больше 0 байт то
вывести строки

а у меня фигня какая то.

Code
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 "Include.h"
 
 
using namespace std;
 
int main()
{
    
    string username;
    ofstream launcher("..\\Debug\\launcher.txt");
    int FileSize=GetFileSize (launcher,0) ;
    
    if(FileSize==0)
    {
    cout<<"NIKNAME: ";
    cin>>username;
    launcher<<username+"\n";
    char b[36]={97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,'1','2','3','4','5','6','7','8','9','0'};
    char token;
    srand (0);
    for(int fr=0; fr<=32; fr++)
    {
        unsigned int i=rand()%36;
        token=b[i];
        launcher<<token;
    };
    launcher.close ();
    }
    else
    {
        ifstream launcher("..\\Debug\\info.code");
        string one[64];
        string two[64];
        cout<<one<<endl;
        cout<<two<<endl;
        launcher.close ();
    }
 
    _getch();
    return 0;
}

P.S. Мозги уже кипят. Просьба не ругаться.

А лучше скажите как пользоваться INI файлами в C++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2014, 13:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Размер файла или "баги, лаги" (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") - C++
Описать структуру с именем &quot;ORDER&quot;, содержащий следующие поля: &quot;Счет плательщика&quot;; &quot;Счет получателя&quot;; &quot;Сумма, переводится банковской...

Вставить пробел после каждого символа "." "," "!" или "?", если за этими символами не следует пробел - C++
Вставить пробел после каждого символа &quot;.&quot; &quot;,&quot; &quot;!&quot; или &quot;?&quot;, если за этими символами не следует пробел (т. е. следует любой символ, кроме...

Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день","Суббота" или "Воскресенье" - C++
Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: &quot;Рабочий день&quot;,&quot;Суббота&quot; или...

Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков "+", "-", "*". - C++
Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков &quot;+&quot;, &quot;-&quot;, &quot;*&quot;. Групой...

Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"."девять", начиная каждое предложение с новой строки - C++
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова &quot;ноль&quot;, &quot;один&quot;...&quot;девять&quot;,...

13
IrineK
Заблокирован
19.04.2014, 13:51 #2
Цитата Сообщение от Natsu_Zirok Посмотреть сообщение
У меня файл весит 0 байт
Это откуда известно?
0
Natsu_Zirok
-1 / 0 / 1
Регистрация: 14.10.2013
Сообщений: 156
19.04.2014, 14:57  [ТС] #3
при запуске он создается если его нету. Файл в формате txt
0
0x10
2482 / 1657 / 249
Регистрация: 24.11.2012
Сообщений: 4,126
19.04.2014, 15:36 #4
Natsu_Zirok, GetFileSize принимает на вход HANDLE, а что Вы передаете? Отсюда и ерунда на выходе. Как вариан, простой способ узнать размер файла: http://stackoverflow.com/questions/5...iles-size-in-c
0
Natsu_Zirok
-1 / 0 / 1
Регистрация: 14.10.2013
Сообщений: 156
19.04.2014, 16:32  [ТС] #5
tellg и seekg у меня выдают ошибку, так бы с радостью!
0
IrineK
Заблокирован
19.04.2014, 16:37 #6
Цитата Сообщение от Natsu_Zirok Посмотреть сообщение
при запуске он создается
Это откуда известно?
0
Natsu_Zirok
-1 / 0 / 1
Регистрация: 14.10.2013
Сообщений: 156
19.04.2014, 18:17  [ТС] #7
Смотрю в папку
0
0x10
2482 / 1657 / 249
Регистрация: 24.11.2012
Сообщений: 4,126
19.04.2014, 18:19 #8
Цитата Сообщение от Natsu_Zirok Посмотреть сообщение
tellg и seekg у меня выдают ошибку, так бы с радостью!
Значит, с ошибкой надо разобраться. Ваш Кэп.
0
IrineK
Заблокирован
19.04.2014, 18:27 #9
Цитата Сообщение от Natsu_Zirok Посмотреть сообщение
Смотрю в папку
Папка правильная?
0
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
19.04.2014, 18:38 #10
в коде нет проверки на то, что файл вообще открылся. это может быть из-за относительного пути:
C++
1
2
3
4
5
ofstream launcher("..\\Debug\\launcher.txt");
if (!launcher)
{
  // стрим не валидный. дальше с ним работать нет смысла.
}
в зависимости от способа запуска текущие директории могут оказаться разные в разных режимах.
в общем поставьте проверку на то, что стрим валидный после создания. и еще можно попробовать
с полным путем открыть.
0
Natsu_Zirok
-1 / 0 / 1
Регистрация: 14.10.2013
Сообщений: 156
20.04.2014, 19:30  [ТС] #11
Может хватить задавать тупые вопросы.

Добавлено через 2 минуты
Файл открылся. Так как в таком коде
Code
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
#include "Include.h"
 
 
using namespace std;
 
int main()
{
    
    string username;
    ofstream launcher("..\\Debug\\launcher.txt");
    
    cout<<"NIKNAME: ";
    cin>>username;
    launcher<<username+"\n";
    char b[36]={97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,'1','2','3','4','5','6','7','8','9','0'};
    char token;
    srand (0);
        unsigned int i=rand()%36;
        token=b[i];
        launcher<<token;
    launcher.close ();
 
    _getch();
    return 0;
}

Все записывается в файл
0
0x10
2482 / 1657 / 249
Регистрация: 24.11.2012
Сообщений: 4,126
20.04.2014, 20:37 #12
Цитата Сообщение от Natsu_Zirok Посмотреть сообщение
Файл открылся.
Ок, допустим, с открытием все в порядке.

Цитата Сообщение от Natsu_Zirok Посмотреть сообщение
Может хватить задавать тупые вопросы.
Без комментариев.

Сейчас на какой стадии проблемы? Если Вы все еще пытаетесь заставить работать код из первого поста, то ничего не выйдет - я уже объяснял почему.
0
Natsu_Zirok
-1 / 0 / 1
Регистрация: 14.10.2013
Сообщений: 156
21.04.2014, 04:00  [ТС] #13
Сейчас попробую через буфер. А с tellg и seekg я не знаю что делать
0
IrineK
Заблокирован
21.04.2014, 04:54 #14
Сделайте поток fstream, а потом лезьте в него tellg.
ofstream по понятным причинам tellg не поддерживает.

std::istream::tellg
std::ostream::tellp
std::fstream
0
21.04.2014, 04:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2014, 04:54
Привет! Вот еще темы с ответами:

Определить, какая из точек "В" или "С" расположены ближе к точке "А". - C++
На оси Ох расположены 3 точки А, В и С. Определить, какая из точек &quot;В&quot; или &quot;С&quot; расположены ближе к точке &quot;А&quot;. Предусмотреть вариант...

Обчисление введенной строки любого формата(пример:"(2+3)/4*2"или"2+3"или ...) - C++
Доброе время суток ! Если у когото есть такое код выложыте пожалуста,буду примного благодарен, или подскажыте какойто алгоритм или где...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Реализовать условие "больше или равно", "меньше или равно" для простых дробей в классе - C++
как реализовать условие больше или равно, меньше или равно для простых дробей в классе?


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.