2016-04-05 3 views
-2

私はC++を学んでいましたが、私はCで始まっていましたが、私のコンパイラのコンパイルを止めていたこの奇妙な問題がありました。迷い「342」や何らかの誤りがありました。コンパイラに不具合がありますか? 2つの等号、それらの作品のうちの1つだけ

これはASCII以外の文字を使用していることが原因であることがわかりましたが、残りのポストに対する解決策は非常に簡単でした。

私はちょうど書いた両方のこの「int型の主」S(私はコードをテストするために、1つのブロックまたは他のコメントが...また、ポルトガルのを気にしない、それはまったく関係ありません):

#include <stdio.h> 
#include <stdlib.h> 

/* 
int main() 
{ 
    float x; 
    printf("Introduza um numero com bastantes casas decimais: \n"); 
    scanf("%f", &x); 
    printf("Com 2 casas decimais: %.2f \nCom todas as casas decimais %f", x, x);⁠⁠⁠⁠ 
    return 0; 
} 

*/ 

int main() 
{ 
    float var; 

    printf("Introduza um numero com bastantes casas decimais: \n"); 

    scanf("%f", &var); 

    printf("Com 2 casas decimais: %.2f \nCom todas as casas decimais: %f", var, var); 


} 
このライン上の

||=== Build: Debug in ExplicAna (compiler: GNU GCC Compiler) ===| 
/home/meneses/Cê/ExplicAna/main.c||In function ‘main’:| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\342’ in program| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\201’ in program| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\240’ in program| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\342’ in program| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\201’ in program| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\240’ in program| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\342’ in program| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\201’ in program| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\240’ in program| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\342’ in program| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\201’ in program| 
/home/meneses/Cê/ExplicAna/main.c|10|error: stray ‘\240’ in program| 

最初のブロックが動作しない、それが私にこのエラーが発生します

printf("Com 2 casas decimais: %f \nCom todas as casas decimais %f", x, x);⁠⁠⁠⁠ 

私がいることを消去しましたライン3回、それを書き換えたが、何も、 "まったく同じに見えます。

私はそれから、まったく等しい他のコードを書いて、それがうまくいったのです!

私には何が欠けていますか? これは私がCをコンパイルした初めてのことであり、将来的には再び危機を引き起こすかもしれないと心配しています。

+2

ファイルをANSIエンコードで保存します。 – 2501

+1

テキストエディタで見ることのできないテキストファイルに不正な文字をコピー/貼り付けするのは不明ではありません。解決策は、行を再入力することです。 –

+0

ペーストをまったくコピーしませんでした。 @WeatherVane どうすればいいですか?私はコード::ブロックを使用しています –

答えて

1

両方のコード行でxことがvarを固定した後、第二のコード(作業)ラインは、次のオクテットで終わる:

x , sp x ) ; lf 
78 2c 20 78 29 3b 0a 

(破線)最初のものは、で終了しかし:

x , sp x ) ;          lf 
78 2c 20 78 29 3b e2 81 a0 e2 81 a0 e2 81 a0 e2 81 a0 0a 
セミコロンと改行の間に挟まれた他の言葉で

は、あなたが持っている:

e2 81 a0 e2 81 a0 e2 81 a0 e2 81 a0 

セミコロンの後に、しかしあなたのコンパイラが間違っていた改行の前に、最初のコード行に隠れた文字があります。

+0

ありがとう、私は問題がここにあったことを認識するようになりました: "、x、x);"しかし、私はすべてのことを二度も書いたので、それらの隠された文字がそこにいかにあるかわかりません。 ヘビエディターが何だったのか分かりませんでした。ありがとうございます。 –

+0

その価値は、U + 2060のUTF-8表現[「Word Joiner」(https://en.wikipedia.org/wiki/Word_joiner))です。どのようにファイルの1つをファイルに入れ、4つのファイルを気にするかわかりません。 – rici

+0

@rici no kidding?誰かわかったね? (あなた= P以外に)。私の推測では、もともとは1つだったのですが、数回の切り取り、貼り付け、可視の文字の削除などが行われた後、それらは掛け算されました。 – WhozCraig