web-dev-qa-db-ja.com

エラー:プログラム内の浮遊 '\ 240'

次の機能を実装することが望まれます。

void calc ( double* a, double* b, int r, int c, double (*f) (double) )

パラメータa、r、c、fは入力で、bは出力です。 「a」および「b」は、「r」、「row」、および「c」の列を含む2d行列です。 「f」は、次のタイプの機能を指すことができる機能ポインターです。

double function‐name ( double x ) { 
    … 
} 

Function calc converts everyelement in matrix a、i.e.、aij、to bij = f(aij)in matrix b。


calc関数を次のように実装し、プログラムに入れてテストします。

#include <stdlib.h>
#include <iostream>

using namespace std;

double f1( double x ){
    return x * 1.7;
}

void calc ( double* a, double* b, int r, int c, double (*f) (double) ) 
{
    double input;
    double output;

    for(int i=0;i<r*c;i++)
    {
        input=a[i];
        output=(*f)(input);
        b[i]=output;
    }
}

int main()
{
    //input array:
    int r=3;
    int c=4;
    double* a = new double[r*c];
    double* b = new double[r*c];

    //fill "a" with test data
    //...

    for (int i=0;i<r*c;i++)
    {
        a[i]=i;
    }


    //transform a to b
   calc ( a, b, r, c, f1 );

    //print to test if the results are OK
    //...

    for (int i=0;i<r*c;i++)
    {
        b[i]=i;
    }

    return 0;
}

問題は、コンパイルできないことです。これはDevC++の出力です(Compile and Execute)ボタンをクリックしたとき:

compilation errors referring to invalid characters

どうしましたか?

実装をより効率的にするためのコメントに感謝します。

7
Abraham

ソースに不正な文字が含まれているようです。どんなキャラクター\240はあるはずですが、どうやら10行目の開始あたりです

投稿したコードでは、問題は存在しません:Live On Colir

4
sehe

以前の返信で述べたように、これは通常、コピーペーストされたコードをコンパイルするときに発生します。 bashシェルがある場合、通常、次のコマンドが機能します。

iconv -f utf-8 -t ascii//translit input.c > output.c
6
the sudhakar

/240エラーは、行のすべてのコードの前の不正なスペースが原因です。

例えば。

行う

printf( "Anything");

の代わりに

 printf( "Anything");

IDEでコードをコピーして貼り付けると、このエラーがよく発生します。

4
Vishesh Gautam

プログラムに無効または不可視の文字が含まれています。別のWebサイトまたはドキュメントからコードをコピーして過去にコピーしたときに、これらの不可視の文字を拾った可能性が高いでしょう。サイトから別のテキストドキュメントにコードをコピーしてから、コードエディターにコピーして貼り付けることもできますが、コードの長さによっては、Word for Wordを入力してください。

2
Abraham Solomon

行全体をコピーしただけで同じエラーが発生しましたが、コードをもう一度書き直すと、つまりコピーアンドペーストの代わりに完全に書き込むと、エラーはなくなりました。

結論:言語に受け入れられない単語がコピーされ、このエラーが発生する可能性があります。

1
Ajay

解決策:そのコード行を削除し[*別のソース文書からコピーした場合]、自分で入力してください。

エラー:プログラム内の浮遊 '\ 240'は、単に文字エンコードエラーメッセージです。

私の経験から、それは文字エンコーディングの問題です。たとえば、Webページからコードをコピーした場合、またはIDEでコピーして貼り付ける前にテキストエディターで最初にコードを記述した場合、ソースドキュメントまたはエディターの文字エンコードが付属する場合があります。

0
rocksyne

コード全体に不正なスペースがあるため、同じ問題に直面しました。

これらのスペースのいずれかを選択し、find and replaceを使用してすべての一致を通常のスペースに置き換えて修正しました。

0
Simon van Eeden