关于C++文件操作的问题求解

文件操作代码如下

 //#include <iostream>
//using namespace std;
#include <cstdio>                   //freopen语句需使用<stdio>库
int main()
{
    freopen("in.txt", "r", stdin);  //定义输入文件名
    freopen("out.txt", "w", stdout);//定义输出文件名
    int temp, sum = 0;
    while(scand("%d", &temp)==1)//(cin >> temp)从输入文件中读入数据
    {                           //C++中非零为真
        sum = sum + temp;
    }
    printf("%d\n", sum);        //相当于 cout << sum << endl;
    fclose(stdin);
    fclose(stdout);             //关闭文件, 可省略
    return 0;
}

但为什么不需任何输入
while(scand("%d", &temp)==1)//(cin >> temp)从输入文件中读入数据
直接退出
图片说明

程序中将stdin重新定向到in.txt
也就是说不用从键盘输入,直接从in.txt读入。
输出也定向到out.txt,所以屏幕上什么都看不到。你可以查看out.txt

这时候你应该去调试,确定问题出在哪里。这样子是看不出来的