1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include <stdio.h> #include <stdlib.h> int charToInt(char ch) { if(ch >= 48 && ch <= 57) return ch - 48; else return -1; } //char포인터 head를 연속된 수의 자릿수만크 옮기면서 수를 int형으로 반환 int charNumToIntNum(char** head) { int digit, result = 0; int i, count = 0, returnValue = 0; digit = 1; do{ result += digit * charToInt(**head); digit *= 10; *head += 1; count++; }while( **head != '\t' && **head != '\n' ); digit /= 10; // digit의 자릿수는 result의 자릿수*10이다. for(i = 1; i <= count; i++){ returnValue += (result % 10) * digit; result /= 10; digit /= 10; } return returnValue; } int main(){ char *charNum = "4153647\t"; int ass = 10; printf("%p \n", charNum); printf("%d \n", charNumToIntNum(&charNum) + ass ); printf("%p \n", charNum); return 0; } | cs |
문자열로 받은 정수를 int형 정수로 바꾸는 함수를 만들었어여
int형 정수를 반환하면서 넣은 문자열 포인터는 숫자 끝의 \\t 나 \\n을 가리키는 함수임.
1 2 3 4 9 0
9 0 8
9
이런 형식의 파일을 입력하고 싶어서 만든 함수임
근데 함수를 만들어 놓고 보니 FILE의 _ptr을 매개변수char** head로 줘야 되더라구요
그런데 이런 짓 해도 되나요? fseek() 같은 함수 안 쓰고?
되여->돼여