2017-04-11 192 views
2

我需要你的帮助。我想将我的代码的输出导出到文本文件中。我真的不知道如何处理它。有人可以帮我弄清楚这一点。谢谢你这么多文件处理和导出到文本文件

因此,这里是我的代码:

#include<stdio.h> 
#include<stdlib.h> 
#include<string.h> 

struct node { 
int data; 
struct node *next; 
}; 
struct node *top = NULL; 

struct node* createNode(int data){ 
struct node *p = (struct node *) malloc(sizeof (struct node)); 
p->data = data; 
p->next = NULL; 
} 

void push (int data){ 
    struct node *ptr = createNode(data); 
    if (top == NULL){ 
     top = ptr; 
    return; 
    } 
    ptr->next = top; 
    top = ptr; 
} 

int pop(){ 
    int data; 
    struct node *temp; 
    if (top == NULL) 
     return -1; 
    data = top->data; 
    temp = top; 
    top =top->next; 
    free(temp); 
return (data); 
} 

int main(){ 
     char str[100]; 
     int i = 0, data = -1, operand1, operand2, result; 
     printf("Expression in postfix format: "); 
     fgets(str, 99, stdin); 
      for (; i < strlen(str); i++){ 
       if (isdigit(str[i])){ 
       data = (data == -1) ? 0 : data; 
       data = (data * 10) + (str[i] - 48); 
       continue; 
      } 
      if (data != -1){ 
      push(data); 
      } 
      if (str[i] == '+' || str[i] == '-' || str[i] == '*' || str[i] == '/'){ 
      operand2 = pop(); 
      operand1 = pop(); 
       if (operand1 == -1 || operand2 == -1) 
        break; 

     switch (str[i]){ 
      case '+': 
        result = operand1 + operand2; 
        push(result); 
        break; 
      case '-': 
        result = operand1 - operand2; 
        push(result); 
        break; 
      case '*': 
        result = operand1 * operand2; 
        push(result); 
        break; 
      case '/': 
        result = operand1/operand2; 
        push(result); 
        break; 
       } 
      } 
        data = -1; 
     } 
        if (top != NULL && top->next == NULL) 
         printf("Postfix Evaluation: %d\n", top->data); 
        else 
         printf("Invalid Expression!\n"); 
     return 0; 

}

+1

您需要fprintfs更换用printfs –

+2

'PROG> output.txt' – BLUEPIXY

+1

或使用'freopen' –

回答

0

在主,你必须打开该文件:

FILE *fp; 
fp = fopen ("whatever.txt", "w+"); // w+ mean that you open the file 
            // write and read, but if it 
            // not exist, will be made. 

,改变printffprintf

fprintf(fp, "%d\n", i); // you must add the name of the file where to 
         // print your stuff (fp) 

在主月底,记得要关闭该文件的连接:

fclose (fp);