2012-07-02 1 views
-3

Как узнать, кто в данный момент входит в систему, а затем создать текстовый файл на рабочем столе этого пользователя? Я много часов занимаюсь исследованиями, пытаясь разного кода, и я все еще не могу этого сделать.Найдите текущего пользователя и создайте текстовый файл на рабочем столе в C++

Спасибо! Drew

+0

попытался 'getuid()'? –

+2

http://stackoverflow.com/questions/8863337/programmatically-find-username-in-c или http://stackoverflow.com/questions/8723956/how-to-print-the-current-user-and-system -name-in-unix .. это может помочь – Dili

+3

Что такое целевая операционная система? – Skyler

ответ

0

В C++ это не способ конкатенации строк. попробуйте:

myfile.open (string(strPath) + "\\text.txt"); 

В C++ вы не можете конкатенировать строки, просто записывая их рядом друг с другом. Один из способов - использовать их или использовать идиоматический подход C++ для преобразования в std::string, а затем использовать + для их конкатенации.

+0

Спасибо, что достал меня дальше, чем я был, но теперь я получаю ошибку компиляции: "error C2440: ' ': невозможно преобразовать из' TCHAR [260] 'в' std :: string ' 1> Никакой конструктор не мог взять тип источника, или разрешение перегрузки конструктора было неоднозначным " – user1495277

+0

' TCHARS' определяются либо 'char', либо 'wchar_t' в зависимости от того, какой UNICODE OR MBCS определен или нет. Планируете ли вы использовать свое программное обеспечение в странах, не относящихся к ascii? Если нет, то отключите широкие строки и используйте 'char' с соответствующей версией функции SHGetSpecialFolderPathA. Иначе вам нужно будет преобразовать массив 'wchar_t' в массив' char' с функцией 'widechartomultibyte', прежде чем вы сможете создать' std :: string'. Или используйте соответствующие функции '_tcscat' для c-манипуляций с помощью MS. http://msdn.microsoft.com/en-us/library/h1x0y282%28v=vs.100%29.aspx – RedX

+0

Прошу прощения, уже поздно, и я немного смущен. Я изменил код и удалил 'TCHAR' в 'CHAR' и изменил 'SHGetSpecialFolderPath (' to 'SHGetSpecialFolderPathA ('. Теперь я просматриваю свойства для проекта под набором символов и уверен, что установить (Unicode или MBCS).Кажется, что я установил все еще, что дает ошибки компиляции. Снова, извините, я совсем устал. – user1495277

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