0

I was working on Vigenère for pset2, when I was prompted to run update50. After the update completed,

string = plaintext = get_string(); 

failed with the following error:

vigenere.c:22:24: error: too few arguments to function call, single argument 'prompt' was not specified string plaintext = get_string();

I changed the code to this:

string plaintext = get_string("plaintext: ");

and it compiled.

However, when I run "check50 2016.vigenere vigenere.c" in the terminal, it does not compaile:

:( vigenere.c compiles \ expected an exit code of 0, not standard error of "vigenere.c:22:35: error: too many argum..."

which looks like it is expecting the old behavior of get_string();

So the question is, should I code with the new behavior which does compile and not use check50 to test my code or is the old behavior expected during grading? Third option: Is this a bug in the update that will be fixed very soon and I should wait for the fix?

Thank you for your time.

1
  • Same problems here! Can the IDE recover to the previous version? Commented Jul 15, 2017 at 6:05

1 Answer 1

1

ROOT CAUSE: changes to the environment in update50. (Specifically CFLAGS, which changes -std=c11 to -std=gnu11). This affects all the cs50.h get_ functions. It is important to close any and all terminals to ensure the environment is refreshed. Or you can restart your workspace with CS50 IDE -> Restart.


Let the chaos begin! As the CS50 team at Harvard prepares for the next school session (Fall 2017), there are usually some bumps in the road.

It sounds like you have assessed the situation properly, and know your options. check50 has always been a reliable indicator of grading.

If you want to verify your work before you move on in the course, consider checking your program with the old version of get_string, but don't submit until check50 works with the new version.

4
  • awesome. thank you for your help! Commented Jul 14, 2017 at 17:22
  • After you ran update50, did you close open terminals? There is an environment change to CFLAGS that will allow get_string() to work with or without an argument. It should all be good if you open a new terminal. The updated CFLAGS should use -std=gnu11 instead of -std=c11. Commented Jul 14, 2017 at 19:01
  • I have already closed and opened the chrome, but it does't work. The get_int() failed too. Commented Jul 15, 2017 at 6:10
  • @HuangLiangHsiung Closing and opening Chrome will not solve the problem. Make sure you close all terminals. Info has been added to this answer. Commented Jul 15, 2017 at 10:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .