Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The compiler complains with "Error: stray '\240' in program"

It is wanted of me to implement the following function:

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

Parameters a, r, c and f are input and b is output. “a” and “b” are two-dimensional matrices with “r” rows and “c” columns. “f” is a function pointer which can point to any function of the following type:

double function‐name ( double x ) {
    …
}

Function calc converts every element in matrix a, i.e., aij, to bij=f(aij) in matrix b.


I implement the calc function as follows, and put it in a program to test it:

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

The problem is, I can't compile it. This is the output of DevC++ when I click on Compile and Execute button:

Compilation errors referring to invalid characters

What's wrong?

I appreciate any comment to make the implementation more efficient.

like image 596
Ebrahim Ghasemi Avatar asked Mar 27 '15 23:03

Ebrahim Ghasemi


5 Answers

The /240 error is due to illegal spaces before every code of line.

eg.

Do

printf("Anything");

instead of

 printf("Anything");

This error is common when you copied and pasted the code in the IDE.

like image 26
Vishesh Gautam Avatar answered Oct 10 '22 10:10

Vishesh Gautam


As mentioned in a previous reply, this generally comes when compiling copy pasted code. If you have a Bash shell, the following command generally works:

iconv -f utf-8 -t ascii//translit input.c > output.c
like image 69
3 revs, 3 users 62% Avatar answered Oct 10 '22 09:10

3 revs, 3 users 62%


It appears you have illegal characters in your source. I cannot figure out what character \240 should be but apparently it is around the start of line 10

In the code you posted, the issue does not exist: Live On Coliru

like image 26
sehe Avatar answered Oct 10 '22 10:10

sehe


Your program has invalid/invisible characters in it.

You most likely would have picked up these invisible characters when you copy and paste code from another website or sometimes a document. Copying the code from the site into another text document and then copying and pasting into your code editor may work, but depending on how long your code is you should just go with typing it out word for word.

like image 38
Abraham Solomon Avatar answered Oct 10 '22 10:10

Abraham Solomon


I got the same error when I just copied the complete line but when I rewrite the code again i.e. instead of copy-paste, writing it completely then the error was no longer present.

Conclusion: There might be some unacceptable words to the language got copied giving rise to this error.

like image 22
Ajay Avatar answered Oct 10 '22 11:10

Ajay