簡體   English   中英

_mkdir異常行為C ++

[英]_mkdir strange behaviour c++

我正在努力解決一個奇怪的問題。 我想為程序的解決方案創建一個文件夾,並編寫了以下代碼:

timer = time(NULL);
path.assign(".\\Solution_");
path.append(ctime(&timer));
ch1 = ':';
ch2 = '_';
for (i = 0; i < path.length(); ++i) {
    if (path[i] == ch1 || path[i] == ' ')
    path[i] = ch2;
    }

mkdir(path.c_str());

即使path等於“ 。\\ Solution_Thu_Jun_12_10_10_31_2014 ”並且我輸入,它也不會創建任何東西

mkdir(".\\test");

它可以正常工作。 我進行了許多測試,我力所能及,但我無法弄清楚出了什么問題。 誰能幫我嗎? 最好,羅伯托

詳細信息:即使我使用mkdir(path.c_str()); 路徑等於“ Solution_Thu_Jun_12_11_52_04_2014”(不帶任何\\),則無論如何都不起作用,而在另一側'mkdir(“ test”);' 作品。

解決方案 :好的,有一個隱藏的換行符。 謝謝大家的幫助:-)!!!

您遇到的問題是反斜杠字符是轉義序列的開始。 這些用於在流中輸入不可打印的字符(制表符,回車符等)。

因此,您的程序正在看到一個反斜杠,並期望下一個字符將成為命令字符。 如果看到另一個反斜杠,則表明您想要一個反斜杠而不是轉義序列,因此為什么\\\\有效而\\無效。

由於運行的是Windows,因此可以使用CreateDirectory函數。

同樣,您作為示例輸入的是C,而不是C ++。 您從什么來源學習?

檢查Windows中文件名是否包含換行符或其他任何非法字符。 您的錯誤看起來像那樣。

Windows不允許這些字符<>?/\\| or newline <>?/\\| or newline文件名中的<>?/\\| or newline

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM