2011-06-30 12 views
0

を作成していない私には、以下のプログラムを使用してディレクトリを作成することができません:新しいディレクトリが

#include <direct.h> 
#include <iostream> 
using namespace std; 
int main() { 
if(_mkdir("d:\ff") == 0) { 
    cout << "success"; 
} else { 
    cout << "fail"; 
    } 
} 

このプログラムの出力fail .whyが、それはそうでしょうか?私が使用しています

コンパイラは、Microsoft Visual C++ 2010であるあなたは、あなたのバックスラッシュをエスケープする必要が

+4

あなたはこれが必要かもしれません: '_mkdir(" d:\\ ff ")'? – Donotalo

+0

@ Donotaloはいそれは動作します。しかし、なぜ**ダブルスラッシュ**? – saplingPro

+0

二重バックスラッシュ '(\\)'は、C/C++では単一のバックスラッシュ '(\)'として扱われます。スラッシュ '(/)'と同じではないことに注意してください。 – Donotalo

答えて

2

を表現。 C文字列のエスケープシーケンスのリストについては、http://msdn.microsoft.com/en-us/library/6aw8xdf2%28v=vs.80%29.aspxを参照してください。

+0

Webページの行に**と書かれています。 "文字定数内に円記号を表示するには、行に2つの円記号を入力する必要があります。" **しかし、 'ofstream writeDetails "c:/a/b.txt") 'これはうまく動作します。 – saplingPro

+0

@grassPro:ウェブページは*バックスラッシュについて述べていますが、 '' c:/a/b.txt "'にスラッシュ*を入れました。 – Donotalo

+0

はい 'ofstream writeDetails(" c:/a/b.txt ")'を書くと、単一のスラッシュが動作するのはなぜですか?ディレクトリを作る際にここではうまくいかないのはなぜですか? – saplingPro

関連する問題