it-swarm.com.de

Fehler: Fehler '\ 240' im Programm

Ich möchte die folgende Funktion implementieren:

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

Die Parameter a, r, c und f werden eingegeben und b wird ausgegeben. "A" und "b" sind 2d-Matrizen mit "r" -Zeilen und "c" Spalten. "F" ist ein Funktionszeiger, der auf eine Funktion des folgenden Typs zeigen kann:

double function‐name ( double x ) { 
    … 
} 

Die Funktion calc konvertiert jedes Element in der Matrix a, d. H. Aij, in bij = f (aij) in der Matrix b.


Ich implementiere die calc-Funktion wie folgt und füge sie zum Testen in ein Programm ein:

#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;
}

Das Problem ist, ich kann es nicht kompilieren. Dies ist die Ausgabe von DevC++, wenn ich auf die Schaltfläche Compile and Execute klicke:

 compilation errors referring to invalid characters

Was ist falsch?

Ich freue mich über jeden Kommentar, um die Implementierung effizienter zu gestalten.

6
Abraham

Sie haben anscheinend illegale Zeichen in Ihrer Quelle. Ich kann nicht herausfinden, welches Zeichen \240 sein soll, aber anscheinend ist es um den Anfang von Zeile 10

In dem von Ihnen geposteten Code existiert das Problem nicht: Live On Coliru

4
sehe

Wie bereits in einer früheren Antwort erwähnt, ist dies beim Kompilieren kopiert. Wenn Sie eine Bash-Shell haben, funktioniert der folgende Befehl im Allgemeinen:

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

Der /240

anstatt

  printf ("Alles");

Dieser Fehler tritt häufig auf, wenn Sie den Code in die IDE kopiert und eingefügt haben.

4
Vishesh Gautam

Ihr Programm enthält ungültige/unsichtbare Zeichen. Diese unsichtbaren Zeichen hätten Sie höchstwahrscheinlich abgerufen, wenn Sie Code von einer anderen Website oder manchmal aus einem Dokument kopieren. Das Kopieren des Codes von der Website in ein anderes Textdokument und das anschließende Kopieren und Einfügen in den Code-Editor funktioniert möglicherweise. Je nachdem, wie lange Ihr Code ist, sollten Sie jedoch nur Word für Word eingeben. 

2
Abraham Solomon

Ich habe dieselbe Fehlermeldung erhalten, als ich gerade die komplette Zeile kopiert habe, aber wenn ich den Code erneut umschreibe, d. H.

Schlussfolgerung: Möglicherweise enthält die kopierte Sprache einige inakzeptable Wörter, die zu diesem Fehler führen.

1
Ajay

LÖSUNG: LÖSCHEN SIE DIESE CODE-ZEILE [* WENN SIE SIE AUS EINEM ANDEREN QUELLEN-DOKUMENT KOPIERT HABEN] UND TYPEN SIE SIE SELBST.

Fehler: Streuung '\ 240' im Programm ist einfach eine Zeichencodierungsfehlermeldung.

Aus meiner Erfahrung ist es nur eine Frage der Zeichenkodierung. Wenn Sie beispielsweise einen Code von einer Webseite kopieren oder ihn zuerst in einem Texteditor schreiben, bevor Sie ihn in eine IDE kopieren und einfügen, kann er mit der Zeichencodierung des Quelldokuments oder -editors geliefert werden.

0
rocksyne

Das gleiche Problem hatte ich aufgrund illegaler Leerzeichen in meinem gesamten Code.

Ich habe es korrigiert, indem ich eines dieser Leerzeichen auswählte und mit find and replace alle Übereinstimmungen durch reguläre Leerzeichen ersetzt.

0
Simon van Eeden