2017-08-09 24 views
0

テキストファイルの読み取り文字列に問題があります。fscanfの引用符を無視するには

何か=「テスト」

そして、私は引用符の間の文字列を読みたい:ファイルであったデータは、このフォーマットです。だから私のプログラムの中で私が実行します?。。私は前のファイルにスペースを入れ除いて、第2の引用符を無視することができますどのように

fscanf(fil,"language=\"%s[^\"]",data); 

または

fscanf(fil,"language=\"%s\"",data); 

が、私は常に、変数のデータでテスト「を取得私は正確にしたいですテキストファイルでその形式。

は私が助けのために感謝するでしょう。

+3

「s」は最初のスニペットには含まれません。 – WhozCraig

+0

データは文字の配列ですchar data [20]だから私はsが良いフォーマットだと思います。 –

+0

'fscanf'はバックアップできません。形式で'%s'にヒットすると、文字列全体を読み込みます。これは空白文字まですべての文字です。 – stark

答えて

0

あなたが常に完全な文字列以外で読むことができる書式設定文字列についてあまり深く考えたくない場合あなたが望むサブストリングを取り出してください。

例:

次のコードは、最初"ためstrを検索し、最後"strNewにサブストリングを置きます。

#include <string> 
#include <iostream> 

using namespace std; //used for ease but not the best to use in actual code. 

int main() 
{ 
    string str = "variable=\"name\""; 
    cout << str << endl; 
    int first = str.find("\""); 
    int last = str.find_last_of("\""); 
    string strNew = str.substr (first + 1, last - first -1); 
    cout << strNew << endl; 
    return 0; 
} 
+0

これは私が必要とするものです。 –

関連する問題