2013-02-19 5 views
3

У меня есть код на C++, где мне нужно использовать CString со sprintf. В этом коде я создаю имена файлов CStrings, которые определены sprintf. Код ниже.Использование CString с sprintf

double Number;  
Number = 0.25; 

char buffer [50]; 

CString sFile; 
sFile = sprintf(buffer,"TRJFPICD(%3.3f).txt",Number); 

CString SFFile; 
SFFile = sprintf(buffer,"TRJFPICV(%3.3f).txt",Number); 

CString SFFFile; 
SFFFile = sprintf(buffer,"TRJFPICA(%3.3f).txt",Number); 

нужные имена файлов TRJFPICD(0.25).txt, TRJFPICV(0.25).txt и TRJFPICA(0.25).txt. Мне нужно использовать CStrings для моего кода.

Ошибка, которую я получаю, является «operator =» является неоднозначной.

+1

'sprintf' возвращает' int' - почему вы ожидали бы назначить 'int' в' CString'? Кроме того, используйте '_stprintf' вместо' sprintf', чтобы избежать проблем с юникодом или лучше использовать 'CString :: Format' вместо любого варианта' sprintf'. – ildjarn

+1

Вместо 'sprintf' вы можете использовать метод' Format' в '' CString''. – jxh

+0

Используйте эту ссылку msdn для определения точного способа использования спринта для копирования данных в объект CString: http://msdn.microsoft.com/en-us/library/aa300569(v=vs.60).aspx – roymustang86

ответ

6

Взгляните на CString::Format (игнорируйте CStringT часть - CString происходит от CStringT). Он делает то, что вы хотите, и позволяет переписать код чисто:

double Number = 0.25; 

CString sFile; 
sFile.Format(_T("TRJFPICD(%3.3f).txt"), Number); 

CString SFFile; 
SFFile.Format(_T("TRJFPICV(%3.3f).txt"),Number); 

CString SFFFile; 
SFFFile.Format(_T("TRJFPICA(%3.3f).txt"),Number); 
+1

Спасибо так много. Я НЕ программист на C++. Я инженер-строитель, работающий над моей докторской диссертацией, и я должен использовать объектно-ориентированное программирование на C++ для работы с моим консультантом. Когда я заканчиваю учебу, я больше никогда не буду программировать MFC. –

+2

@ Грэди: Для того, чтобы быть вынужденным использовать только MFC, у вас есть мои симпатии. – ildjarn

+0

Эй! Это доктор философии! Он должен немного пострадать! –

Смежные вопросы