파이썬 인풋과 다음 두가지 측면에서 다르다.
파이썬 인풋은 print문이 사실 input에 결합된 형태.
근데 c의 경우도 프린트문이 있는 것 같긴하지만 파이썬과는 좀 달리, 구분된 것임
scanf는 단지 정말 scan만 다루는 기능임
즉 그 프람프트는 printf로 그 전 라인에 따로 써줘야 함
파이썬은 input함수에 이 c에서 전 라인에 써주는 프람프트가 통합되어 있음
근데 scanf에서도 스트링 즉 첫번째 아규가 뭔가 하는 것 같은데 뭔지 모르겠음
현재 실험한 결과 이상함. 계속 제대로 안 나오고 스캔에프의 메모리 주소가 뜨고
값을 콘솔에 입력해도 콘솔 출력물이 안나오고 안 바뀜
===>
onlinegdb로 가서 하니 잘 된다.
즉 jdoodle 이 저 콘솔이 뭔가 이상하다 c가.
그리고 해보니
scanf의 그 ""는 콘솔 출력이 되는 게 아니라 포맷 지정만 하는 역할인 것이 확실하다.
또한 이상한 점이 %c를 해서 char를 해보려 했는데 프로그래미즈에서도 1개 캐릭터만
나온다. 여러개 캐릭터 나오려면 포인터로 해야 하는가?
==>이게 답이다 . 존나 복잡하고 골때리게도 두개변수를 선언해야 한다.
배열 변수를 선언해서 캐릭터 저장하게 해야 하고
그것에 대한 포인터 변수도 선언해서 할 수 있다.
씨는 이렇게 복잡하다!
10으로 지정 안 하고 싶으면 맬록을 쓰라고 한다.
https://cboard.cprogramming.com/c-programming/138489-scanf-string-pointer.html
https://stackoverflow.com/questions/14546018/using-scanf-function-with-pointers-to-character
이 위의 두 글에서 내 잘못을 알게되었다.
#include <stdio.h>
int main()
{
char stri[10]="NULL";
char *sc;
sc = stri;
printf("Enter an integer: ");
scanf("%s", sc);
printf("car = %s",sc);
return 0;
}
https://www.programiz.com/c-programming/online-compiler/?ref=454b856b
이 컴파일러도 좋다 온라인에서 쓰기 씨를.
https://www.programiz.com/c-programming/c-input-output
여기 포맷 스페서파이어들
==================
드디어 해결했다 맬록으로.
완성형이다.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *p = (int *)malloc(sizeof(int));
printf("Hello World");
scanf("%d",p);
printf("%d",*p);
return 0;
}