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

Как вписать в переменную текст, размер которой превышает 4096 байтов - C++

Войти
Регистрация
Восстановить пароль
 
VaGa
5 / 0 / 1
Регистрация: 14.08.2012
Сообщений: 28
16.08.2012, 22:51     Как вписать в переменную текст, размер которой превышает 4096 байтов #1
написал скрипт , который сохрянает введенный текст в файл . и я смотрю , кайдый файл 4096 байтов . как решить проблему ?
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
main()
{
FILE * fo;
fo = fopen("D:\\vagaa\\pop.txt","wt");
char text[1024];
cin.getline(text, 1024);
 
int i = 0;
while(i<text[i]){
fprintf(fo , "%c", text[i]);
i++;
}
fclose(fo);    
system("start d:\\vagaa\\pop.txt");  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2012, 22:51     Как вписать в переменную текст, размер которой превышает 4096 байтов
Посмотрите здесь:

Как вывести на экран переменную из функции, которой присваиваеться значение через указатель? C++
считать текст в переменную; C++
C++ Как описать переменную в классе, тип которой заранее неизвестен?
Подсчет количества файлов в папке, размер которых не превышает указанный C++
Как в переменную записать текст, а затем в конце добавить значение переменной? C++
Преобразовать полученный текст в набор строк, каждая из которых содержит целое количество слов и ее длинна не превышает 40 символов C++
C++ Открыть бинарный файл(.ехе) и сохранить часть байтов в текст
C++ Задать размер динамического массива через переменную, обявленную как extern
C++ Как описать шаблонную переменную в классе, тип которой заранее неизвестен ?
Выровнять статический массив на границу 4096 байт C++
C++ Необходимо написать программу, в которой размер матрици задается вручную
C++ Ошибка при выведении функции класса, в которой нужно вводить переменную

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pure
 Аватар для Pure
228 / 49 / 2
Регистрация: 13.03.2012
Сообщений: 453
Записей в блоге: 7
17.08.2012, 00:35     Как вписать в переменную текст, размер которой превышает 4096 байтов #2
это очень странный механизм записи в файл. у тебя счетчик сравнивается с числовым значением элемента массива.
т.е. сцифрой означающей номер символа в символьной таблице.

т.е. например из 1024 введенных цифр 1 запишутся толькопервые 49 элементов, потому что '1' == 49, а если например ввести русские буквы значение символа которых отрицательно, то не запишется вообще ничего. думаю тебе стоит подумать над механизмом записи массива в файл. ну а уж потом выставить на суд проблему там..с размером..
cossack5
54 / 48 / 1
Регистрация: 02.08.2012
Сообщений: 127
17.08.2012, 01:32     Как вписать в переменную текст, размер которой превышает 4096 байтов #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
main()
{
FILE * fo;
fo = fopen("D:\\vagaa\\pop.txt","wt");
char text[1024];
cin.getline(text, 1024);
fprintf(fo , "%s", text);
}
fclose(fo);    
system("start d:\\vagaa\\pop.txt");  
}
Тогда уж так пусть будет если хотите fopen
VaGa
5 / 0 / 1
Регистрация: 14.08.2012
Сообщений: 28
17.08.2012, 13:48  [ТС]     Как вписать в переменную текст, размер которой превышает 4096 байтов #4
Цитата Сообщение от Pure Посмотреть сообщение
это очень странный механизм записи в файл. у тебя счетчик сравнивается с числовым значением элемента массива.
т.е. сцифрой означающей номер символа в символьной таблице.
ehto mne posovetoval odin tovarishh , i rabotaet tak . no delo ne v schetchike , a v peremennoj . kak v nego pomestit' tekst ? nu ja znaju , stranno kak ja pishu takie skripty , no ja novichok , i mne nravistja vse delat' kak ponimaju , ne ljublju tupo kopirovat'
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
17.08.2012, 14:31     Как вписать в переменную текст, размер которой превышает 4096 байтов #5
Цитата Сообщение от VaGa Посмотреть сообщение
как вписать в переменную текст , размер которой превышает 4096 байтов
Если я не ошибаюсь, Но в с++ размер строки неограничен. В строку можно записать более 4096 символов и ничего страшного не должно произойти
C++
1
2
char text[5000];
cin.getline(text, 5000);
Добавлено через 13 минут
Сейчас проверил и получается что с клавиатуры можно ввести не больше 4094 символа.

Добавлено через 19 минут
В переменную можно записать текст любой длины вот таким способом:
1. Сначала скопировать в нее какую-нибудь строку strcpy(str, "Строка 1");
2. А потом добавить к этой строке другую строку strcat(str, "Строка 2");
Pure
 Аватар для Pure
228 / 49 / 2
Регистрация: 13.03.2012
Сообщений: 453
Записей в блоге: 7
17.08.2012, 14:38     Как вписать в переменную текст, размер которой превышает 4096 байтов #6
Цитата Сообщение от VaGa Посмотреть сообщение
ehto mne posovetoval odin tovarishh , i rabotaet tak
скорее даже так. счетчик имеет тип int, т.е. целое со знаком и сравнивается с типом char элементом массива. ввиду этого происходит приведение char к более "широкому" типу int вот и получается что если ввести "ЯЯЯЯЯЯЯЯЯ" в твою программу то на первом же сравнении while(i < text[i])
while (0<-81) цикл завершится и ничего записано не будет. проверь.....
Yandex
Объявления
17.08.2012, 14:38     Как вписать в переменную текст, размер которой превышает 4096 байтов
Ответ Создать тему
Опции темы

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