问题描述
当我在学习书中的一个例子时,
'use strict';
require('dotenv').config();
const mongoose = require('mongoose')
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const app = express();
const cookieParser = require('cookie-parser');
//Import Routes
const userRoute = require('./routes/user')
app.use(cors({origin: 'http://localhost:3001',credentials: true }));
app.use(bodyParser.json());
app.use(cookieParser())
app.use('/account',userRoute);
//connect to db
mongoose.connect(
process.env.DB_CONNECTION,{
useUnifiedTopology: true,useNewUrlParser: true
},() => console.log('connected to db!')
);
app.listen(3000,()=>{
console.log("***********************************");
console.log("API server listening at localhost:3000");
console.log("***********************************");
});
我认为先读取字符,然后打印它会更有意义,因此在左右切换 putchar 和 getchar
#include <stdio.h>
main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c)
c = getchar();
}
}
现在当我运行它时,会发生什么是 putchar 的第一个输出缺少 c 的第一个字符?这是输出:
c = getchar();
putchar(c);
这很有趣,为什么会发生这种情况?
解决方法
因为您在循环之前获得一个字符。这意味着 c 等于第一个字符,但在循环中它会获取之后的每个字符。所以,
Get: f
Start the loop
Get: i
Print: i
And so on
,
问题是现在您没有打印在循环之前使用 getchar()
读取的字符,因此您没有打印第一个字符。
如果您想先执行 getchar()
,请将其放入 while()
条件中。
#include <stdio.h>
main()
{
int c;
while ((c = getchar()) != EOF) {
putchar(c)
}
}