Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 11.08.2009, 16:14   #1
Voipp
Пользователь
 
Регистрация: 03.08.2009
Сообщений: 32
По умолчанию строки

пытаюсь задать полный путь к файлу:
Код:
int lenght;
		
		d.English_words=(char*)malloc(1000);
		strcpy(d.English_words,"C:\\Documents and Settings\\voipP\\Рабочий стол\\папка\\");
		scanf("%s%n",(d.English_words+52),&lenght); 
		d.English_words=(char*)realloc(d.English_words,lenght+52);
но в конце кода в указателе находится только строка которая первоначально в нем была тоесть - "C:\\ ...." почему в конце не добавилось то что ввел пользователь?И куда это все сохраняется?

Последний раз редактировалось MaTBeu; 12.08.2009 в 12:48.
Voipp вне форума
Старый 11.08.2009, 16:33   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

для начала скажи, что ты конкретно хочешь сделать.
scanf("%s%n",(d.English_words+52),& lenght);
ты сместился на 52 символа и запрашиваешь ввод строки. если среди этих 52-х символов будет ноль, твоя строка на этом завершится.
далее, зачем ты запрашиваешь какую то длину? при том, что запрашиваешь ты ее не правильно
scanf("%s%n",(d.English_words+52),& lenght);
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума
Старый 11.08.2009, 16:35   #3
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

А обязательно использовать malloc? может проще использовать new?
MaTBeu вне форума
Старый 11.08.2009, 16:43   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2MaTBeu странный совет. во первых, чел юзает realloc, смысл юзать сишные функции вместе с плюсовскими? во вторых, ну давай перепишем этот код с использованием new, что то изменится? парень сам не понимает, что делает
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума
Старый 11.08.2009, 16:53   #5
Voipp
Пользователь
 
Регистрация: 03.08.2009
Сообщений: 32
По умолчанию

я просто рассчитывал ввод начинать С 52 символа.Насчет управляющей константы %n - она помещяет в соответствующий указатель кол-во символов которое ввел пользователь так что там все вроде верно. Если такой ввод неверный то как нужно правильно?
Voipp вне форума
Старый 11.08.2009, 17:09   #6
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
2я просто рассчитывал ввод начинать С 52 символа.Насчет управляющей константы %n - она помещяет в соответствующий указатель кол-во символов которое ввел пользователь так что там все вроде верно. Если такой ввод неверный то как нужно правильно?
да ладна
Цитата:
double l e, E, f, g, or G
long double (same as double) L e, E, f, g, or G
long int l d, i, o, x, or X
long unsigned int l u
short int h d, i, o, x, or X
short unsigned int h u
__int64 I64 d, i, o, u, x, or X
Single-byte character with scanf h c or C
Single-byte character with wscanf h c or C
Wide character with scanf l c or C
Wide character with wscanf l c, or C
Single-byte – character string with scanf h s or S
Single-byte – character string with wscanf h s or S
Wide-character string with scanf l s or S
Wide-character string with wscanf l s or S
где?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума
Старый 11.08.2009, 17:15   #7
Voipp
Пользователь
 
Регистрация: 03.08.2009
Сообщений: 32
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
да ладна


где?
эээ а что такое? Откройте Шилдта - там написано для чего эта константа
Voipp вне форума
Старый 11.08.2009, 17:27   #8
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Voipp
понял, я просто подумал, ты хочешь считать значение lenght, такого спецификатора не знал.
когда ты скопировал свою константную строку, она скопировалась вместе с символом завершения строки, и в памяти лежит что то типо "старая_строка\0_новая_строка". поэтому ты и не видишь изменений (если выводил результат как строку).

Цитата:
int lenght;
const char m_str[] = "C:\\Documents and Settings\\voipP\\Рабочий стол\\папка\\";
char *pStr = (char*)malloc(1000) ;
strcpy(pStr, m_str);
scanf("%s%n",(pStr + sizeof(m_str) - 1), &lenght);
pStr=(char*)realloc(pStr, lenght + sizeof(m_str) - 1);
printf("%s", pStr);
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума
Старый 11.08.2009, 18:01   #9
Voipp
Пользователь
 
Регистрация: 03.08.2009
Сообщений: 32
По умолчанию

thanx pproger!
Voipp вне форума
Старый 12.08.2009, 04:40   #10
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
А обязательно использовать malloc? может проще использовать new?
Наверно, нужно было спросить на чем пишет ТС - на С(и) или С++ (просто многие не различают эти языки..)
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Строки Mr.Been Паскаль, Turbo Pascal, PascalABC.NET 5 11.05.2009 17:44
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45